在ubuntu系统上编译安装PHP7.4.33时,会报错如下
make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1
原因分析:这个错误提示的意思是PHP配置过程中缺少OpenSSL库文件,因此在编译过程中出现了问题;Ubuntu 22.04 中openssl默认版本是OpenSSL 3.3,与php7.4.33不兼容,支持 SSL 的 Ubuntu 7.4 上的自定义路径中从源代码构建 PHP 33.22.04 会导致在 PHP 中使用 SSL 功能时出错(即简单的 )
解决方法:安装低版本的openssl包,在编译php时指定openssl路径
# wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz
# tar -xvf openssl-1.1.1.tar.gz
# cd openssl-1.1.1
# ./Configure --prefix=/opt/build --openssldir=/opt/build -fPIC -shared linux-x86_64 -Wl,--enable-new-dtags,-rpath,'/opt/build/lib';
# make && make install
注意:如果报以下错,执行以下命令解决
OD document had syntax errors at /usr/bin/pod2man line 69.make: * [install_docs] Error1
# mv /usr/bin/pod2man /tmp
# make install
重新编译php,指定openssl路径为/opt/build即可
# export PKG_CONFIG_PATH=/opt/build/lib/pkgconfig;
# export LD_LIBRARY_PATH=/opt/build/lib;
# export OPENSSL_CONF=/etc/ssl
# ./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-openssl=/opt/build --enable-gd pdo_sqlite --with-jpeg && make && make install