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

STI*_*RAY 6 php

我试图在具有最新WordPress的nginx Web服务器上安装ziparchive和domdocument.为了运行Avada主题,我需要在本地CentOS 7测试服务器上使用这两个.我正在寻找过去3天的答案.我该怎么办?

以下是"已安装的yum列表:"的部分列表

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>
Run Code Online (Sandbox Code Playgroud)

Rem*_*let 18

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-*packages之间差异的常见问题解答

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

当您使用FPM作为来自remi-php72的基本软件包时,您需要来自同一存储库的zip扩展(可能未启用,与之相关yum repolist)

删除不需要的包

yum remove php72\*
Run Code Online (Sandbox Code Playgroud)

向导所述,永久启用存储库以确保从中提取所有扩展

yum-config-manager --enable remi-php72
yum install php-pecl-zip
Run Code Online (Sandbox Code Playgroud)

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

从不这样做,每个包都提供其配置文件以启用提供的扩展.


小智 11

尝试yum search zip |grep -i php使用软件包名称安装


Ima*_*hou 9

这种方法对我有用:首先输入:yum search zip |grep -i php然后它会出现与各种 PHP 版本的 ZIP 扩展相关的所有模块,如下所示:

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
Run Code Online (Sandbox Code Playgroud)

选择您使用的任何版本:yum install ea-php72-php-zip.x86_64 最后,通过以下方式重新启动 Apacheservice httpd restart


小智 8

你可以试试: yum install php-pecl-zip.x86_64

尝试安装它并通过运行启用它: echo "extension=zip.so" >> /etc/php.d/zip.ini


小智 7

这对我有用!

yum install php-pecl-zip
apachectl restart
Run Code Online (Sandbox Code Playgroud)


Ban*_*ana 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
Run Code Online (Sandbox Code Playgroud)

该问题是由于使用 remi 存储库导致的,该存储库未将模块放置在 PHP 期望的默认位置之一。在 /etc/php.d/zip.ini 下的扩展变量中设置 zip.so 的绝对路径可以解决此问题。

如果上述路径不起作用,您可以通过以下方式找到 zip.so 在系统上的位置:

updatedb
locate zip.so
Run Code Online (Sandbox Code Playgroud)