在RedHat系统中编译PHP 7.2.5并关联自定义编译的OpenSSL 1.1.0h
编译PHP 7.2.5并绑定自定义OpenSSL 1.1.0h的实操步骤
我之前也折腾过在RHEL上编译PHP绑定自定义OpenSSL的场景,给你整理了一套靠谱的步骤,照着来应该没问题:
首先,如果你之前尝试过编译PHP,先清理源码目录的残留文件,避免旧配置干扰:
cd php-7.2.5 make clean rm -rf config.cache
1. 设置环境变量,让编译工具找到你的自定义OpenSSL
因为你把OpenSSL装在了非系统默认路径,得先告诉编译系统它在哪:
# 指定OpenSSL的pkg-config配置文件路径,这是让PHP的configure能检测到自定义版本的关键 export PKG_CONFIG_PATH=/home/user/openssl-1.1/lib/pkgconfig # 临时添加库路径,确保编译时能找到OpenSSL的静态库 export LD_LIBRARY_PATH=/home/user/openssl-1.1/lib:$LD_LIBRARY_PATH
2. 执行PHP的configure命令,明确绑定自定义OpenSSL
用你设定的PHP_PREFIX,加上OpenSSL相关的核心参数,再搭配你需要的其他PHP功能:
PHP_PREFIX=/home/user/php-7.2 ./configure \ --prefix=${PHP_PREFIX} \ --with-openssl=/home/user/openssl-1.1 \ --with-openssl-dir=/home/user/openssl-1.1/conf \ # 这里可以添加你需要的其他编译参数,比如常用的: --enable-fpm \ --with-mysqli \ --with-pdo-mysql \ --enable-mbstring \ --enable-opcache
小提示:
--with-openssl-dir对应你编译OpenSSL时指定的--openssldir路径,这样PHP能正确找到OpenSSL的配置文件,避免后续运行时的警告。
3. 编译并安装PHP
执行编译和安装命令,建议加上-j参数利用多核加速(比如-j4用4个核心):
make -j4 make install
4. 验证编译结果
安装完成后,确认PHP真的绑定了你指定的OpenSSL版本:
${PHP_PREFIX}/bin/php -i | grep -A 5 -B 5 "OpenSSL"
如果输出里显示OpenSSL Version => OpenSSL 1.1.0h,就说明成功了!
额外注意点
- 因为你编译OpenSSL时用了
no-shared,PHP会把OpenSSL静态链接到二进制文件里,后续部署时不需要依赖系统的OpenSSL库,也不会出现版本冲突的问题。 - 如果configure过程中提示找不到OpenSSL,先检查
PKG_CONFIG_PATH的路径是否正确,或者手动指定CFLAGS和LDFLAGS:export CFLAGS="-I/home/user/openssl-1.1/include" export LDFLAGS="-L/home/user/openssl-1.1/lib"
内容的提问来源于stack exchange,提问作者devopsfun
相关产品推荐
相关产品推荐

