[问题]:php报错,显示找不到ZipArchive扩展。
[解决]:
1、下载ZIP扩展包(解压后会发现没有 configure 编译配置文件)
wget http://pecl.php.net/get/zip
tar -zxvf zip
cd zip-1.22.1
2、执行 phpize 来生成 configure文件
(phpize是用来关联php扩展模块的,通过phpize可以建立php的外挂模块,在特定的目录生成相应的configure文件,php官方的说明: http://php.net/manual/en/install.pecl.phpize.php)
phpize
这里我出现报错:提示找不到PHP头文件
需要安装 php-devel包,不过要先看下当前软件库中的 php-devel版本
yum info php-devel
这里显示是默认的5.4.16版本,那么直接安装即可
yum install php-devel
完成后再来尝试执行 phpize,发现已经成功生成了 configure 文件
3、编译安装
先查找一下 php-config 文件所在位置
配置编译环境并安装
./configure --with-php-config=/opt/remi/php74/root/usr/bin/php-config
make
make install
这里我又出现报错:提示需要重新安装 libzip ,其实是由于版本太低导致
查看并卸载当前 libzip 包
rpm -qa |grep libzip
yum remove libzip
安装1.2.0版本的 libzip
wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make && make install
查看安装结果,确认安装成功
cat /usr/local/lib/libzip/include/zipconf.h | grep VERSION
继续回到 zip-1.22.1 包目录下进行编译安装
make时再次出现报错:提示 /usr/local/include下找不到 zipconf.h 文件。
手动复制转移
/usr/local/lib/libzip/include/zipconf.h /usr/local/include
再次进行 make && make install ,终于再无报错,安装完成。
复核结果:
ls -tl /opt/remi/php74/root/usr/lib64/php/modules | head -5
php -m |grep zip
4、配置php.ini,重启php生效
定位并编辑 php.ini ,在文件内加入 extension=zip.so ,保存。
(特殊情况下还需要指定路径:extension_dir = /opt/remi/php74/root/usr/lib64/php/modules)
重启生效
systemctl restart php-fpm