安装 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 restart
或 sudo 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 扩展的主要内容,如果未能解决你的问题,请参考以下文章