(Class'ZipArchive'notfound)linuxapache添加zip模块


网站迁移到linux平台后 phpexcel 导出的时候提示错误 Class 'ZipArchive' not found

原因:是因为php没有安装zip模块

解决办法:安装zip模块

解决过程:

获取到zip包
wget http://pecl.php.net/get/zip
解压zip包并进入  
tar -zxvf zip
cd zip-1.x.x 
这是一个条命令如果提示没有的话可以通过 yum install php-devel方式安装,然后执行phpize。
phpize
此时需要获取到本机php-config 的位置,方法也很简单可以通过phpinfo()函数得到php的安装信息也可以 find / -name php-config
你也许会找到好几个,但是根据自己的安装情况找到对应的目录,之后就是简单的编译,安装。注意:configure不加参数会出错,执行完make insatall 之后你会得到一个路径,里面有生成好的zip.so
./configure --with-php-config=/usr/local/php5/bin/php/php-config

编译(我用的是root权限,不是root权限的注意切换)
make

安装(我用的是root权限,不是root权限的注意切换)
make instal

找到你的php.ini 文件位置同样可以通过 find / -name php.ini 也可以通过phpinfo();得到php.ini的位置
做三项修改 将extension_dir的目录指向你文件生成的目录,注意如果已经之制定过,建议将zip.so复制到以制定的目录设置extension=zip.so
extension_dir = /usr/local/lib/php/extensions/
extension=zip.so

设置如下参数,可以先找到参数看是否已经开启,开启后设置值为On
zlib.output_compression = On

至此已经配置完毕通过命令重启apache
service apache2 restart

然后可以在php文件中 写入 <?php echo phpinfo(); ?>访问该文件,查看当前的配置信息,查看zip模块是否安装成功,整个安装过程就是这样,最容易出错的地方是编译(make) 所以一定注意在执行configure的时候配置好参数,至此你的php中的zip模块就已经安装成功,在测试以下excel导出是否有问题。

相关内容