Linux安装php的ZipArchive扩展模块[Centos]
由于受不了IIS的各种蛋疼,上周无聊的时候把服务器全盘打包然后重装了centos系统,配置好apache和mysql、ftp等等必要环境之后,我在给自己博客音乐播放器改成插件版的时候,突然发现我的Web环境竟然不支持ZIP模块。具体表现为不允许上传zip包在线解压安装:
我和我的小伙伴们都惊呆了,百度搜了一下,根本不知道是到底少了什么模块,后来找了好久才知道这个缺少的关键模块叫:ZipArchive
好吧,既然缺少这个功能那我们装上就好了,具体步骤为:
获取到zip包
wget http://pecl.php.net/get/zip-1.8.3.tgz
由于我的centos版本很老,php版本是5.2.17,所以我wget http://pecl.php.net/get/zip-1.8.3.tgz
老版本的
当然你也可以wget http://pecl.php.net/get/zip-1.10.2.tg
或者wget http://pecl.php.net/get/zip-1.12.4.tgz
解压zip包并进入
tar -zxvf zip-1.8.3.tgz
cd zip-1.8.3这是一个条命令如果提示没有的话可以通过,
yum install php-devel
方式安装
然后执行
phpize
这时候需要获取到本机php-config的位置,方法也很简单可以通过phpinfo()函数得到php的安装信息
也可以直接在终端输入:find / -name php-config
你也许会找到好几个,但是根据自己的安装情况找到对应的目录。
比如我的目录是:/usr/bin/php-config
之后就是简单的编译,安装。注意:configure不加参数会出错
找到路径之后输入
./configure --with-php-config=/usr/bin/php-config
(后面的/usr/bin/php-config路径改成自己的)
如果报错就安装yum -y install zlib-devel
,也有可能让你装yum install pcre-deve
,最有可能的是让你装yum -y install gcc
配置完./configure之后直接
make编译,然后
make install安装一下
注意make install之后会出现一个zip.so保存的路径,这个路径要添加到php.ini里。
比如我的是:
找到你的php.ini文件位置同样可以通过find / -name php.ini
也可以通过phpinfo();得到php.ini的位置...
我的是在etc/php.ini
做三项修改,将extension_dir的目录指向你文件生成的目录,注意如果已经之指定过目录,make install时应该会装进去的,但是还是建议将zip.so复制到已经指定过的的目录历,没指定就跳过。
设置php.ini新增:
extension=zip.so
检查:
extension_dir = /usr/lib64/php/modules/
然后重启apache,输入php-m检查有没有zip组件支持。如果提示这个错误:
很遗憾的告诉你,你需要换另一个版本的ZipArchive来尝试。比如我5.2.17装了最新的1.12版本的就报错,装1.10的就伪静态失效等等各种毛病。1.8完美。
消灭星星
明月浩空
小智
明月浩空
九秒
明月浩空
九秒
明月浩空