昨天尝试编译安装了PHP7.3,过程中也遇到了几个坑,总结一下。
我的系统环境是CentOS 7.6.

在等待许久后编译结束,提示了这么一行

configure: error: system libzip must be upgraded to version >= 0.11

libzip版本不够高,yum update了一下发现yum安装最高只有0.10
那么只好去官网找源码编译安装了,于是在官网上下载了最新的libzip-1.15.1,用./configure时却又发现没法编译,进目录一看也没有configure文件,原来是这个1.15.1新版要使用cmake编译了。
使用cmake后又发现cmake版本不够高,再次前往cmake官网下载最新版安装,我装了cmake-3.13.2.

安装新版本前均先yum remove xxxxxx卸载掉旧版本

接下来再次编译安装PHP,又碰到了一个新的问题,经过反复的排查,在之前用yum安装依赖时,源里没有libiconv,于是就跳过了,而我没有注意到。(我的PHP编译扩展里加上了–with-iconv)。安装libiconv后,编译安装PHP,提示

undefined reference to `libiconv’

undefined reference to `libiconv_open’

undefined reference to `libiconv_close’

等等
在不舍弃libiconv的前提下,比较行之有效的一种方法:
在执行完./configure后,找到makefile文件,在其中找到

1
EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmysqlclient -lmcrypt -lldap -llber -lfreetype -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt

在里面加上-libiconv一项,最终大功告成,再次安装就完美成功了。