Fatal error: Class ‘ZipArchive’ not found的解决方法
Linux 下PHP添加zip.so2011年11月22日 星期二 16:13
1. 下载zip.so包
[root@localhost phpinstall]# wget http://pecl.php.net/get/zip-1.10.2.tgz
--2011-10-0919:44:36-- http://pecl.php.net/get/zip-1.10.2.tgz
Resolvingpecl.php.net... 76.75.200.106
Connecting topecl.php.net|76.75.200.106|:80... connected.
HTTP request sent,awaiting response... 200 OK
Length: 236912(231K) [application/octet-stream]
Saving to:`zip-1.10.2.tgz'
100%[======================================>]236,912 30.5K/s in 7.6s
2011-10-09 19:44:44(30.4 KB/s) - `zip-1.10.2.tgz' saved [236912/236912]
2. 解压tgz包
[root@localhost phpinstall]#tar -zxvf zip-1.10.2.tgz
[root@localhost phpinstall]# cd zip-1.10.2
[root@localhost zip-1.10.2]# ls
config.m4 config.w32 CREDITS examples lib php_zip.c php_zip.h tests zip_stream.c
3. 编译安装源文件 自己安装的PHP 路径 [root@house zip-1.10.2]# /usr/local/php/bin/phpize
[root@localhost zip-1.10.2]# /usr/bin/phpize
Configuring for:
PHP ApiVersion: 20041225
Zend Module ApiNo: 20060613
Zend Extension ApiNo: 220060519
[root@localhost zip-1.10.2]# ./configure --with-php-config=/usr/bin/php-config
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
...
configure: creating ./config.status
config.status: creating config.h
[root@localhost zip-1.10.2]# make
/bin/sh/u01/phpinstall/zip-1.10.2/libtool --mode=compile cc -I. -
....
Build complete.
Don't forget to run 'make test'.
[root@localhost zip-1.10.2]# make install
Installing sharedextensions: /usr/lib64/php/modules/
4. 修改php.ini,增加zip.so模块,重启apache
[root@localhost zip-1.10.2]# vi /etc/php.ini
extension=zip.so
[root@localhost zip-1.10.2]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
5. 验证zip模块
[root@fast /]# php -m |grep zip
zip
[root@fast /]#
1. 下载zip.so包
[root@localhost phpinstall]# wget http://pecl.php.net/get/zip-1.10.2.tgz
--2011-10-0919:44:36-- http://pecl.php.net/get/zip-1.10.2.tgz
Resolvingpecl.php.net... 76.75.200.106
Connecting topecl.php.net|76.75.200.106|:80... connected.
HTTP request sent,awaiting response... 200 OK
Length: 236912(231K) [application/octet-stream]
Saving to:`zip-1.10.2.tgz'
100%[======================================>]236,912 30.5K/s in 7.6s
2011-10-09 19:44:44(30.4 KB/s) - `zip-1.10.2.tgz' saved [236912/236912]
2. 解压tgz包
[root@localhost phpinstall]#tar -zxvf zip-1.10.2.tgz
[root@localhost phpinstall]# cd zip-1.10.2
[root@localhost zip-1.10.2]# ls
config.m4 config.w32 CREDITS examples lib php_zip.c php_zip.h tests zip_stream.c
3. 编译安装源文件 自己安装的PHP 路径 [root@house zip-1.10.2]# /usr/local/php/bin/phpize
[root@localhost zip-1.10.2]# /usr/bin/phpize
Configuring for:
PHP ApiVersion: 20041225
Zend Module ApiNo: 20060613
Zend Extension ApiNo: 220060519
[root@localhost zip-1.10.2]# ./configure --with-php-config=/usr/bin/php-config
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
...
configure: creating ./config.status
config.status: creating config.h
[root@localhost zip-1.10.2]# make
/bin/sh/u01/phpinstall/zip-1.10.2/libtool --mode=compile cc -I. -
....
Build complete.
Don't forget to run 'make test'.
[root@localhost zip-1.10.2]# make install
Installing sharedextensions: /usr/lib64/php/modules/
4. 修改php.ini,增加zip.so模块,重启apache
[root@localhost zip-1.10.2]# vi /etc/php.ini
extension=zip.so
[root@localhost zip-1.10.2]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
5. 验证zip模块
[root@fast /]# php -m |grep zip
zip
[root@fast /]#
Fatal error: Class ‘ZipArchive’ not found的解决方法
出现这个错误说明是程序在调用’ZipArchive’ 这个类的时候没有成功,原因是由于在安装php的时候没有增加php zip的支持(非zlib)。
在Windows下的解决办法是:
1、在php.ini文件中,将extension=php_zip.dll前面的分号“;”去除,然后同样在php.ini文件中,将 zlib.output_compression = Off 改为 zlib.output_compression = On ;
2。把php.ini拷到c:/window目录下
3、重启Apache服务器。
在Unix/Linux下的解决办法:
1、在Linux下没有php_zip.dll这个文件(有也不会起作用的),所以需要重新编译一下php的zip模块。具体安装方法如下:
cd /usr/src
wget http://pecl.php.net/get/zip
tar -zxvf zip
cd zip-1.x.x
phpize
./configure
make
sudo make instal
其中, 在最后使用make install命令的时候,可能需要用到root的权限,所以建议使用sudo来运行。安装完之后,屏幕上会提示zip.so的位置。然后将其记录下来, 如:/usr/local/lib/php/extensions/zip.so。
2、使用root权限修改php.ini(通常可能会在/usr/local/lib/文件夹下,不过视当初安装php而定,可以通过 phpinfo()来查看):
增加extension = /usr/local/lib/php/extensions/zip.so,然后同样在php.ini文件中,将 zlib.output_compression = Off 改为 zlib.output_compression = On ;
3、最后别忘了重启一下Apache:apachectl restart;
这个针对php的zip模块就安装完成了,能够在php中使用ZipArchive类了。