WordPress提示缺少zip模块,安装后仍无法检测到该如何解决?
问题描述
WordPress提示缺少可选模块zip,尝试两种安装方法后,执行php -m仍无法检测到该模块:
方法一:源码编译安装zip-1.18.2
执行命令:
wget http://pecl.php.net/get/zip-1.18.2.tgz tar -zxvf zip-1.18.2.tgz cd zip-1.18.2 /usr/bin/phpize ./configure --with-php-config=/usr/bin/php-config make make install make test
随后在/etc/php.ini中添加配置:
extension=zip.so
方法二:YUM安装
执行命令:
yum search php74|grep zip yum -y install php73-php-pecl-zip.x86_64
排查与解决步骤
匹配PHP版本与安装包
先执行php -v确认当前PHP版本,你搜索的是php74的包,但安装的是php73的zip模块,版本不匹配会导致模块无法加载。如果是PHP7.4,需安装对应版本的包,比如php74-php-pecl-zip.x86_64。确认php.ini文件路径
执行php --ini查看当前PHP实际加载的配置文件路径,可能你修改的/etc/php.ini并不是当前PHP使用的配置文件(部分环境中CLI模式和FPM模式会使用不同的php.ini)。验证zip.so文件路径
执行find / -name zip.so查找模块文件位置,源码编译的zip.so通常在/usr/lib64/php/modules/或类似路径下。如果模块不在PHP默认模块目录,需要在php.ini中写绝对路径,比如extension=/usr/lib64/php/modules/zip.so。重启PHP相关服务
如果使用PHP-FPM,执行systemctl restart php-fpm;如果是Apache配合mod_php,重启httpd服务。CLI模式下修改php.ini后需重新打开终端,确保配置生效。补全编译依赖
源码编译zip模块需要依赖libzip库,先执行yum install libzip-devel,再重新编译安装zip模块,避免因依赖缺失导致模块无法生成或加载。查看PHP错误日志
执行php -d display_errors=1 -v查看模块加载错误信息,或者查看PHP错误日志(通常在/var/log/php-fpm/或/var/log/httpd/目录下),根据日志定位具体问题。
内容的提问来源于stack exchange,提问作者Ou Lee

