我将在PHP Web应用程序开发中使用PhpSpreadsheet, 我正在尝试配置在服务器上启用PhpSpreadsheet所需的PHP Zip扩展。 我尝试了两种方法,但我不能很好地设置它,所以我希望你告诉我解决方案和其他要检查的方法。
在终端
执行以下操作# yum install php71-php-pecl-zip.x86_64
# cp /etc/opt/remi/php71/php.d/40-zip.ini /etc/php.d/40-zip.ini
# systemctl stop httpd.service
# systemctl start httpd.service
从Web浏览器使用PhpSpreadsheet执行处理时,发生错误
/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php: 71
Class 'ZipArchive' not found
我确认终端已启用Zip扩展,但我不知道原因。
# php --info
Additional. Ini files parsed =>
·
·
/etc/php.d/40-zip.ini
·
·
zip
Zip => enabled
Zip version => 1.15.2
Libzip headers version => 1.3.2
Libzip library version => 1.5.1
zlib
ZLib Support => enabled
Stream Wrapper => compress.zlib: / /
Stream Filter => zlib.inflate, zlib.deflate
Compiled Version => 1.2.7
Linked Version => 1.2.7
Directive => Local Value => Master Value
zlib.output_compression => Off => Off
zlib.output_compression_level => -1 => -1
zlib.output_handler => no value => no value
# php vendor / phpoffice / phpspreadsheet / samples / index.php
Requirement check:
PHP 5.6.0 ... passed
PHP extension XML ... passed
PHP extension xmlwriter ... passed
PHP extension mbstring ... passed
PHP extension ZipArchive ... passed
PHP extension GD (optional) ... passed
PHP extension dom (optional) ... passed
取消1st的设置后(卸载包,删除复制的文件) 在终端
执行以下操作# yum install php71-php-devel.x86_64
# yum install zlib-devel.x86_64
# pecl install zip
第三个命令中出现以下错误
# pecl install zip
No releases available for package "pecl.php.net/zip"
install failed
由于上述错误,下载文件并执行phpize
将不会再次出现错误...
# wget http://pecl.php.net/get/zip-1.15.2.tgz
# phpize
Can not find PHP headers in /usr/include/php
The php-devel package is required for use of this command.
我不明白为什么pecl install zip
和phpize
发生了错误。
操作系统:红帽企业Linux服务器版本7.4(Maipo)
PHP:7.1.14
答案 0 :(得分:0)
要使ZipArchive类存在,PHP需要安装zip extension。
有关安装说明(Linux和Windows),请参阅this page。
答案 1 :(得分:0)
首先,运行此命令
sudo yum install php-zip
更改php.ini文件后
extension=zip.so
现在运行此命令。
sudo service httpd restart
sudo service php-fpm restart
它在Amazon服务器上的cent os中为我工作。
答案 2 :(得分:0)
CentOS 8的解决方案:
yum install php74-libzip.x86_64
yum install php-pecl-zip