如何在CentOS 7上使用PHP 7.2安装zipArchive?

21

我正在尝试在最新的WordPress上安装ziparchive和domdocument到nginx Web服务器。为了运行Avada主题,我需要在本地CentOS 7测试服务器上安装这两个库。我已经搜索了3天,仍未找到答案。请问我该怎么办?

以下是“yum list installed”的部分列表:

php-common.x86_64                   7.2.3-2.el7.remi               @remi-php72<BR>
php-fpm.x86_64                      7.2.3-2.el7.remi               @remi-php72<BR>
php-json.x86_64                     7.2.3-2.el7.remi               @remi-php72<BR>
php-mysqlnd.x86_64                  7.2.3-2.el7.remi               @remi-php72<BR>
php-pdo.x86_64                      7.2.3-2.el7.remi               @remi-php72<BR>
php72.x86_64                        1.0-1.el7.remi                 @remi-safe<BR>
php72-php-cli.x86_64                7.2.3-2.el7.remi               @remi-safe<BR>
php72-php-common.x86_64             7.2.3-2.el7.remi               @remi-safe<BR>
php72-php-json.x86_64               7.2.3-2.el7.remi               @remi-safe<BR>
php72-php-mbstring.x86_64           7.2.3-2.el7.remi               @remi-safe<BR>
php72-php-pear.noarch               1:1.10.5-6.el7.remi            @remi-safe<BR>
php72-php-process.x86_64            7.2.3-2.el7.remi               @remi-safe<BR>
php72-php-xml.x86_64                7.2.3-2.el7.remi               @remi-safe<BR>
php72-runtime.x86_64                1.0-1.el7.remi                 @remi-safe<BR>

unzip.x86_64                        6.0-16.el7                     @base<BR>
7个回答

31

php-json.x86_64 7.2.3-2.el7.remi @remi-php72

php72-php-json.x86_64 7.2.3-2.el7.remi @remi-safe

看起来你的安装有点乱,你同时安装了一半php-包(基础包)和一半php72-php-包(SCL包)

阅读关于php-*和php##-php-*包之间的区别?的常见问题解答

php-fpm.x86_64 7.2.3-2.el7.remi @remi-php72

由于你正在使用来源于remi-php72的FPM基础包,所以你需要从同一仓库中获取zip扩展(可能未启用,请使用yum repolist检查)

删除不必要的包

yum remove php72\*

正如向导所解释的那样,永久启用该软件源确保所有扩展都将从中获取

yum-config-manager --enable remi-php72
yum install php-pecl-zip

echo "extension=zip.so" >> /etc/php.d/zip.in

不要这样做,每个软件包都提供其配置文件以启用所提供的扩展。


这个方法有效!我想你的意思是“yum remove php72-”,无论如何,它卸载了所有的PHP,然后我重新安装了它,我的问题都解决了。非常感谢你! - STINGRAY

29

尝试使用yum search zip | grep -i php命令搜索相关的软件包并安装。


谢谢!我成功安装了:php72-php-pecl-zip.x86_64。但是,按照您说的创建zip.ini文件后,它仍然无法正常工作。 - STINGRAY
您可以编写一个快速的 phpinfo(); 脚本并检查 Zip 是否已启用。 - tringuyen
phpinfo() 中未启用 Zip。同时,zip.ini 不存在,因此我使用 vi 创建了一个。这样做有问题吗? - STINGRAY
这对我来说完美地解决了问题!不仅如此,它对其他缺失的功能(比如exif)也非常有效。只需要运行“yum search zip |grep -i php”等命令即可满足需求。 - Chris McElligott Park
谢谢。它已经在我的CENTOS VPS上运行。 - Shahidul Islam

9
这个方法对我很有效: 首先输入:yum search zip |grep -i php,然后它将显示所有与ZIP扩展相关的模块及其不同版本的PHP,如下所示:
ea-php54-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php55-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php56-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php70-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php71-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php72-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php73-php-zip.x86_64 : A module for PHP applications that need to handle .zip

通过以下命令选择您正在使用的版本:yum install ea-php72-php-zip.x86_64最后,通过service httpd restart重启Apache。


9
你可以尝试执行以下命令:yum install php-pecl-zip.x86_64 尝试安装并启用它,执行以下命令:echo "extension=zip.so" >> /etc/php.d/zip.ini

基础源:mirror.steadfast.net epel源:mirror.cs.princeton.edu 额外源:mirrors.lga7.us.voxel.net remi-safe源:mirror.team-cymru.org 更新源:mirror.team-cymru.org 找不到php-pecl-zip.x86_64软件包。 错误:无事可做,缺少什么? - STINGRAY
尝试使用命令“yum search zip | grep -i php”搜索并安装相应的软件包名称。 - tringuyen

7

这对我有用!

yum install php-pecl-zip
apachectl restart

5
我通过以下方式解决了这个问题:
yum install yum-utils
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install remi-release-7.rpm
yum-config-manager --enable remi-php72
yum install php72-php-pecl-zip
echo "extension=/opt/remi/php72/root/usr/lib64/php/modules/zip.so" >> /etc/php.d/zip.ini

问题是由于使用了 remi 软件仓库,该软件仓库并未将模块放置在 PHP 期望的默认位置之一。在 /etc/php.d/zip.ini 的扩展变量下设置 zip.so 的绝对路径即可解决该问题。如果上述路径不起作用,则可以通过以下方式找到系统上 zip.so 的位置:
updatedb
locate zip.so

或者您可以将zip模块添加到PHP模块目录中 sudo cp /opt/remi/php74/root/usr/lib64/php/modules/zip.so /usr/lib64/php/modules/ - turrican_34

1
尝试使用命令 yum search zip |grep -i php 进行搜索,然后通过返回的软件包名称进行安装。
例如 - sudo yum install ea-php73-php-zip.x86_64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接