使用wp-cli更新WordPress时遭遇Segmentation fault错误求解决方案
解决WP-CLI执行
wp core update出现Segmentation Fault的问题 Segmentation fault(段错误)在WP-CLI场景下大多和PHP环境兼容性、扩展冲突或WP-CLI版本不匹配有关,结合你的PHP 5.6.30 + CentOS 7环境,试试下面这些针对性的解决方案:
1. 降级WP-CLI到兼容PHP 5.6的版本
WP-CLI从2.6.0版本开始要求PHP 7.0及以上,而你的PHP是5.6,直接用新版WP-CLI很容易触发段错误。你需要安装最后支持PHP 5.6的WP-CLI稳定版(2.5.0):
# 先备份当前WP-CLI mv $(which wp) $(which wp).bak # 下载2.5.0版本 curl -O https://github.com/wp-cli/wp-cli/releases/download/v2.5.0/wp-cli-2.5.0.phar # 赋予执行权限 chmod +x wp-cli-2.5.0.phar # 移动到系统可执行路径 mv wp-cli-2.5.0.phar /usr/local/bin/wp
之后再尝试运行wp core update,注意:PHP 5.6最高只能兼容WordPress 5.5.x版本,WP-CLI会自动识别并更新到对应兼容版本。
2. 排查PHP扩展冲突
段错误经常由有问题的PHP扩展(比如opcache、xdebug、memcached等)引发,你可以先禁用所有扩展测试:
php -n $(which wp) core update
如果这个命令能正常执行,说明是某个扩展的问题。接下来逐个启用扩展排查:
- 编辑
php.ini文件,注释掉怀疑的扩展(比如在extension=opcache.so前加;) - 重启PHP-FPM或Apache(如果用的是mod_php)
- 再次运行
wp core update,直到找到引发错误的扩展,然后更新该扩展或永久禁用它。
3. 调整PHP内存限制
PHP内存不足也可能导致段错误,临时增加内存限制测试:
php -d memory_limit=256M $(which wp) core update
如果有效,建议永久修改php.ini中的memory_limit参数,设置为256M或更高(根据你的服务器配置),之后重启PHP服务。
4. 更新PHP到5.6最新补丁版本
CentOS 7的PHP 5.6可能存在已知的bug,通过yum更新到同分支的最新补丁版本:
# 如果用的是Remi仓库(通常CentOS 7安装PHP 5.6会用这个) yum update php php-cli php-common
更新完成后重启PHP服务,再尝试WP-CLI命令。
5. 临时手动更新WordPress
如果以上方案都无效,可以先手动更新WordPress作为替代:
- 备份你的WordPress目录(尤其是
wp-config.php和wp-content文件夹) - 下载兼容PHP 5.6的最新WordPress版本(5.5.13):
curl -O https://wordpress.org/wordpress-5.5.13.tar.gz - 解压压缩包:
tar -xzf wordpress-5.5.13.tar.gz - 替换WordPress核心文件:
cp -r wordpress/* /path/to/your/wp/(注意不要覆盖wp-config.php和wp-content)
内容的提问来源于stack exchange,提问作者Rohitp
相关产品推荐
相关产品推荐

