安装 PHP Zip 扩展

Posted

技术标签:

【中文标题】安装 PHP Zip 扩展【英文标题】:Installing PHP Zip Extension 【发布时间】:2013-09-17 10:45:05 【问题描述】:

我正在尝试。

我的服务器没有外部互联网访问,所以我自己从 PECL 下载了它:http://pecl.php.net/package/zip。我选择了最新的“稳定”版本 1.10.2,并将其转移到我的服务器上。

我跑了:

pear install zip-1.10.2.tgz

并添加了

extension=zip.so

按照指示转到 php.ini。我可以看到 zip.so 也被创建并放置在正确的 extension_dir 文件夹中。我重新启动了 apache,然后通过运行检查它是否已加载:

php -m

尽管如此,“zip”仍然不在该列表中。

我是错过了一步还是做错了什么?我以为这应该很简单,我开始觉得自己很笨,哈哈。

其他可能很重要的东西:

CentOS 阿帕奇 2.2.3 PHP 5.2.16

【问题讨论】:

【参考方案1】:

这是我在我的机器(ubuntu)上安装它的方式:

php 7:

sudo apt-get install php7.0-zip

php 5:

sudo apt-get install php5-zip

编辑:确保之后重新启动服务器。

sudo /etc/init.d/apache2 restartsudo service nginx restart

PS:如果你使用的是centOS,请查看上面cweiske的answer 但是如果你使用的是 Debian 衍生操作系统,这个解决方案应该可以帮助你安装 php zip 扩展。

【讨论】:

确保之后重启 Apache:/etc/init.d/apache2 restart 您似乎建议使用包管理器来解决或防止任何问题。 CentOS 似乎使用yum 作为包管理器。 对于 php7.1 sudo apt install php7.1-zip 有人能安装php7.2 的zip 扩展吗?它一直在说 E: 无法找到包 php7.2-zip E: 找不到任何包 regex 'php7.2-zip' 我尝试了很多变体,但都没有用,我有 PHP 版本 7.2.17-1+ubuntu14.04.1+deb.sury.org+3【参考方案2】:

您可能有多个 php.ini 文件,一个用于 CLI,一个用于 apache。运行 php --ini 以查看 CLI ini 的位置。

【讨论】:

感谢您的回复。这将返回以下内容(对不起,我不确定如何在评论中换行):加载的配置文件:(无)扫描其他 .ini 文件:(无)解析的其他 .ini 文件:(无)。另外, find / -name "php.ini" 告诉我这是盒子上唯一的 php.ini 文件 它没有加载任何配置文件。那是你的问题。我的 PHP 还显示了一个带有 php --ini 的“配置文件 (php.ini) 路径”。使用$ strace -eopen php --ini 找出您的 php 查找 .ini 文件的位置。 很抱歉让这一切在没有解释的情况下死去。 php --ini 说配置文件路径是/usr/bin ...我只需要把它移到那里吗?此外,如果配置文件中没有任何内容生效,PHP 是否会附带一组它使用的默认值? 是的,有默认值。它们记录在 php 手册中。尝试将 php.ini 移动到您找到的路径。【参考方案3】:

适用于 PHP 7.3 / Ubuntu

sudo apt install php7.3-zip

适用于 PHP 7.4

sudo apt install php7.4-zip

【讨论】:

【参考方案4】:

只需使用sudo yum install php-zip

【讨论】:

问题指定这是针对 CentOS,而不是 Ubuntu。 CentOS 使用 yum 而不是 apt-get【参考方案5】:

1 步 - 安装所需的扩展程序

sudo apt-get install libz-dev libzip-dev -y

2 步 - 安装 PHP 扩展

pecl install zlib zip

3 步 - 重新启动 Apache

sudo /etc/init.d/apache2 restart

如果不起作用,您可以检查是否在您的 phpinfo 中调用了 zip.ini,以检查是否包含 zip.so。

【讨论】:

错误:`/tmp/pear/temp/zip/configure --with-php-config=/usr/local/bin/php-config' 失败【参考方案6】:

对于 ubuntu 16.04 上的 php 7.3

sudo apt-get install php7.3-zip

【讨论】:

【参考方案7】:

在 CentOS 上在 php7.2 中安装 Zip 扩展的最佳方法如下:

    通过yum命令搜索找到可用的扩展名

    yum 搜索压缩包

    这将列出所有 zip 包。我们需要寻找php7.2的zip包

    如果你的 php 版本是 7.2 然后运行命令

    yum 安装 ea-php72-php-zip

这绝对可以解决您的问题。

干杯!!

【讨论】:

【参考方案8】:

在 Amazon Linux 2 和 PHP 7.4 上,我终于安装了 PHP-ZIP,我希望它可以帮助其他人 - 通过以下方式(注意 yum install 命令还包括额外的常用模块,您可能不需要全部):

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

sudo yum -y install yum-utils

sudo yum-config-manager --enable remi-php74

sudo yum update

sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

sudo pecl install zip

php --modules

sudo systemctl restart httpd

【讨论】:

无需“pecl install”,ZIP 扩展在“remi-php74”存储库中可用! 直到我出现它才出现在我的已安装模块列表中。但在我的无数次尝试中,我可能还有其他问题。感谢您的来信。【参考方案9】:

如果你使用php5.6那么执行这个:

sudo apt-get install php5.6-zip

【讨论】:

>CentOS Apache 2.2.3 PHP 5.2.16【参考方案10】:

PHP5 版本在 Ubuntu 18.04+ 版本中不支持,因此您必须从源文件手动配置。如果您使用的是php-5.3.29,

# cd /usr/local/src/php-5.3.29
# ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=MySQL_LOCATION/mysql --prefix=/usr/local/apache/php --with-config-file-path=/usr/local/apache/php --disable-cgi --with-zlib --with-gettext --with-gdbm --with-curl --enable-zip --with-xml --with-json --enable-shmop
# make
# make install

重启Apache服务器,查看浏览器上的phpinfo功能<?php echo phpinfo(); ?>

注意:请更改 MySQL_Location:--with-mysql=MySQL_LOCATION/mysql

【讨论】:

【参考方案11】:

我尝试使用以下命令更改存储库列表:

http://security.ubuntu.com/ubuntu bionic-security主宇宙http://archive.ubuntu.com/ubuntu仿生主受限宇宙

但它们似乎都不起作用,但我终于找到了一个可以运行以下命令的存储库

add-apt-repository ppa:ondrej/php

然后使用 apt-get 正常更新和安装包

如您所见,它终于安装好了。

【讨论】:

以上是关于安装 PHP Zip 扩展的主要内容,如果未能解决你的问题,请参考以下文章

如何知道 php zip 扩展是不是已经安装?如何在 Linux 中重新编译 PHP? [关闭]

ubuntu16.04安装php扩展包

PHP的zip压缩工具扩展包学习

10. PHP扩展模块安装

PHP扩展模块安装

centos6.9下php7安装zip扩展