无法使用remi-php72 repo在Centos 7.6.1810上加载动态库'zip.so'

问题描述 投票:1回答:2

我在让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,但扩展仍然无法加载。

有人可以帮忙吗?

php centos7 ziparchive php-zip-archive
2个回答
0
投票

请检查您是否使用来自remi-safe存储库的最新libzip5版本1.5.1(这是必需的,默认情况下已启用)


-1
投票

我遇到了同样的问题,并找到了以下解决方案:

  1. 搜索已安装的php模块:

yum list installed | grep php*

  1. 尝试找到已安装的php-zip模块:

rpm -ql php72-php-pecl-zip

  1. 你会看到这样的东西:
/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
  1. 然后在默认情况下php搜索模块的目录中创建符号链接到此文件:

ln -s /opt/remi/php72/root/usr/lib64/php/modules/zip.so /usr/lib64/php/modules/zip.so

在这个步骤之后我终于在php -m输出中看到了zip扩展,现在可以使用类ZipArchive

您也应该重新启动httpd服务。

© www.soinside.com 2019 - 2024. All rights reserved.