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

时间:2019-01-19 08:15:54

标签: php centos7 ziparchive php-zip-archive

我无法更新十月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:未定义的符号:zip_libzip_version),/ usr / lib64 / php / modules / zip.so.so(/usr/lib64/php/modules/zip.so.so:无法打开共享对象文件:无此类文件或目录)第0行

奇怪的是,在我的/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可以很好地安装zip.so(它可以正确加载),除了October至少需要php 7.0。 -php 7.0到7.3都安装了zip.so,但是扩展名仍然无法加载。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

1-手动下载https://pecl.php.net/package/zip上的最后一个ZIP pecl库

2-使用pecl将其安装在下载的文件中

sudo pecl install zip-1.19.1.tgz

3在php.ini上启用zip

extension=zip

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

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

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

| source | target | | ------ | ------ | | 1 | 2 | | 2 | 3 | | 3 | 4 | | 3 | -1 | | 4 | -1 | | 5 | -1 |

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

yum list installed | grep php*

  1. 您将看到类似这样的内容:
rpm -ql php72-php-pecl-zip
  1. 然后只需在默认情况下php搜索模块的目录中创建与此文件的符号链接:

/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输出中看到了zip扩展名,现在可以使用类php -m

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