我在让10月CMS更新时遇到问题:
在/var/www/html/jdd/htdocs/vendor/october/rain/src/Filesystem/Zip.php的第51行更新失败的“类'ZipArchive'未找到”
如果我做php -m,我收到以下警告:
PHP警告:PHP启动:无法加载动态库'zip.so'(试过:/usr/lib64/php/modules/zip.so(/usr/lib64/php/modules/zip.so:undefined symbol:zip_libzip_version) ,/ usr / lib64 / php / modules / zip.so.so(/usr/lib64/php/modules/zip.so.so:无法打开共享对象文件:没有这样的文件或目录))在第0行的Unknown中
奇怪的是,在我的/etc/php.d/文件夹中,zip.ini文件包含以下行:extension = zip.so。而/php.d中的所有其他.ini文件都不包含“.so”扩展名(例如:对于json.ini文件,该行显示为:extension = json)。我试过从zip.ini extension =行中删除“.so”,但它仍然无效。
据我所知,系统只运行x86_64可执行文件(我如何绝对确定地检查它 - 所有二进制文件显示为.x86_64或.noarch?)。
我已经尝试过其他版本的php:-php 5.4 installs zip.so fine(它正确加载),除了10月需要至少php 7.0。 -php 7.0到7.3全部安装zip.so,但扩展仍然无法加载。
有人可以帮忙吗?
请检查您是否使用来自remi-safe存储库的最新libzip5版本1.5.1(这是必需的,默认情况下已启用)
我遇到了同样的问题,并找到了以下解决方案:
yum list installed | grep php*
rpm -ql php72-php-pecl-zip
/etc/opt/remi/php72/php.d/40-zip.ini
/opt/remi/php72/root/usr/lib64/php/modules/zip.so # <----
/opt/remi/php72/root/usr/share/doc/pecl/zip
ln -s /opt/remi/php72/root/usr/lib64/php/modules/zip.so /usr/lib64/php/modules/zip.so
在这个步骤之后我终于在php -m
输出中看到了zip扩展,现在可以使用类ZipArchive
。
您也应该重新启动httpd服务。