我正在安装一个在Amazon EC2实例(Amazon Linux 2)上需要ZipArchive的CMS。需求向导说不支持ZipArchive:
但是如果按照我在网上找到的说明尝试安装ZipArchive,服务器会告诉我它已经安装:
[ec2-user@ip-***-**-**-** ~]$ sudo yum install php-zip
Loaded plugins: langpacks, priorities, update-motd
amzn2-core | 2.0 kB 00:00:00
Package matching php-common-5.4.16-43.amzn2.0.1.x86_64 already installed. Checking for update.
Nothing to do
我已经重新启动了httpd服务。
我也尝试过:
[ec2-user@ip-***-**-**-** ~]$ sudo yum install php7.0-zip
Loaded plugins: langpacks, priorities, update-motd
amzn2-core | 2.0 kB 00:00:00
No package php7.0-zip available.
Error: Nothing to do
我也尝试过添加:
extension=zip.so
到php.ini并重新启动httpd服务。仍然没有快乐。
在ZipArchive的PHP手册中,它说“为了使用这些函数,你必须使用--enable-zip configure选项编译带zip支持的PHP。”我不确定在何时何地这样做。我只是用过:
yum install php php-mysql
安装PHP。
差不多有一天试图解决这个问题,我不知道从哪里开始。有人能指出我正确的方向吗?
答案 0 :(得分:2)
如果你正在使用Remi的repo,我注意到zip模块是一个pecl扩展,所以要安装并启用zip运行
sudo yum -y install php-pecl-zip
然后重启php-fpm你正在使用NGINX或重启APACHE
sudo service php-fpm restart
sudo service httpd restart
您可以安装Remi repo
**RHEL or CentOS**
yum install yum-utils
yum-config-manager --enable remi-php72
答案 1 :(得分:1)
我遇到了同样的问题(亚马逊Linux 2 AMI)试图安装Laravel。 问题是这个AMI使用libzip 0.10.1,而至少需要0.11,如果你检查你的扩展文件夹(在这个AMI:/ usr / lib64 / php / modules中),文件zip.so就会丢失。因此,如果在php.ini文件中启用扩展,则会在apache的日志中出现错误。 我使用Remi的RPM存储库解决了这个问题,以安装libzip 1.1.3。这就是我所做的:
从repo安装libzip。您可以检查新的libzip版本,即:
$ yum list "*libzip*"
Installed Packages
libzip-last.x86_64 1.1.3-1.el7.remi installed
既然你有一个兼容的libzip,你可以编译zip扩展:从你的tmp文件夹中的PECL下载包,解压缩文件和包根:
$ sudo phpize
$ sudo ./configure
$ sudo make
$ sudo make install
,输出应为:
Installing shared extensions: /usr/lib64/php/modules/
如果你进入那个目录,现在你应该终于看到了zip.so文件。
更改您的php.ini添加
extension=zip
重新启动网络服务器并检查您的php信息。这就是我在我看到的:
Zip enabled
Zip version 1.15.2
Libzip version 0.11.2
在我的情况下,我能够安装laravel。
答案 2 :(得分:0)
我在Centos 7和PHP 7.3上也遇到了类似的问题。
我可以通过以下方式解决它:
sudo yum install php-pecl-zip.