php7.4编译参数的时候出现的问题
翻译过来的意思就是 libzip的版本必须大于0.11
且 不能等于1.3.1
或者1.7.0
官网下载地址
https://libzip.org/download/libzip-1.3.2.tar.gz
#卸载自身的libzip
yum remove libzip
#下载
wget https://libzip.org/download/libzip-1.3.2.tar.gz
tar xvf libzip-1.3.2.tar.gz
cd libzip-1.3.2
./configure && make && make install
#查看libzip在那个路径
whereis libzip
现在需要告诉. ./configure
程序,你新安装的libzip在哪里,方法有两个
1、编辑 /etc/ld.so.conf
这个文件,最后面添加以下内容
`/usr/local/lib`
接着执行下面的命令立即生效
ldconfig -f
2、执行下面一条命令即可
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"
从libzip1.4.0
版本以上需要cmake编译安装(非必须情况下,不推荐,可以忽略)
yum -y install cmake(安装的是2.8的,编译libzip需要cmake3版本)
#网上很多都是编译安装cmake3,这里我给大家弄到一个简单的方法
#先卸载干净自带的camke
yum remove camke
#直接yum下载camke3以及所需的依赖
yum -y install cmake3 openssl openssl-devel gnutls gnutls-devel mbedtls mbedtls-devel bzip2 bzip2-devel
#然后创建cmkae的软连接(设置环境变量也可以)
ln -s /usr/bin/cmake3 /usr/bin/cmake
#到20201019为止最新的是libzip1.7.3,注意需要翻墙才能下载注意,这个步骤一步一步来,才能看清楚报错情况
wget https://libzip.org/download/libzip-1.7.3.tar.gz
tar -zxvf libzip-1.7.3.tar.gz
cd libzip-1.7.3
mkdir build
cd build
cmake ..
make && make install
#执行cmake .. 指令的时候会出现这个提示:Could NOT find Nettle: Found unsuitable version "2.7.1", but required is at least "3.0",这里提示这个库的版本太低了,需要下载后手动编译升级一下然后继续执行往下的步骤
#卸载原本旧版nettle
yum remove nettle
#下载nettle3.6以下是官方链接
wget https://ftp.gnu.org/gnu/nettle/nettle-3.6.tar.gz
cd nettle-3.6
#必须指定路径否则cmake..还是会提示找不到nettle
./configure --prefix=/usr/ && make && make install
然后发现报这个,但是后面php可以编译通过了,不会报错,有知道这个是怎么回事的麻烦告知一下,这个是本来就是这样的呢?还是我那个步骤没搞对呢?
接下来就和libzip1.3
的一样了,需要告诉 ./configure
程序,你新安装的libzip
在哪里了
,其实上面的输出信息,往上拉就可以看到,但是也可以通过下面的命令可以这样查看安装路径
find /usr -name '*libzip*'
把新的路径执行一遍,再次回去安装php7.4就没问题了
export PKG_CONFIG_PATH="/usr/lib64/pkgconfig/"
参考连接(非常感谢):
https://blog.csdn.net/alwaysbefine/article/details/107367435?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
https://blog.csdn.net/counsellor/article/details/104430429