我有一台 CentOS / Red Hat 5.5 机器,运行当前的 PHP 5.1.6 包。用户收到以下错误:
Fatal error: Class 'ZipArchive' not found in /var/www/html/<filename.php> on line 225
根据一些阅读,看起来 PHP 希望在编译时拥有 --enable-zip 标志,但是我们正在运行 RedHat / Cent 的打包版本。我并不热衷于从源代码编译 PHP 以启用此选项;有没有办法在不诉诸自定义编译的情况下启用 zip 函数?
其他信息...在 php.ini 中我有:
zlib.output_compression = On
; zlib.output_handler =
提前感谢任何指导。
答案1
如果您在安装 PHP 包时安装了 zlib-devel 包,则会视为设置了 enable-zip 标志。
yum install zlib-devel && yum install php
如果在 repos 中安装了相同的版本,则可能需要卸载 php。
答案2
ZipArchive 类随 PHP 5.2 提供,您的服务器中装有 php 5.1.x
解决方案:
您的用户请检查他们的软件,如果是定制的,则使用 zip_* 函数而不是 ZipArchive 类,如果不是,则尝试搜索支持 PHP 5.1.x 的版本。
将你的 CentOS 服务器中的 php 升级到 5.2,你可以使用 IUS Community repohttp://iuscommunity.org/, 回购http://blog.famillecollet.com/pages/Config-enCentAltRU,http://centos.alt.ru为此(并测试你的其他 php 软件不会受到影响)