PHP8.2 + OPENSSL 3 编译安装记录

// 编译openssl
wget https://www.openssl.org/source/openssl-3.0.9.tar.gz
tar zxf openssl-3.0.9.tar.gz && cd openssl-3.0.9
./config shared -Wl,--enable-new-dtags -Wl,-rpath=/opt/openssl/lib64 --prefix=/opt/openssl --openssldir=/opt/openssl
make && make install

// 编译PHP8.2
wget https://www.php.net/distributions/php-8.2.8.tar.gz
tar zxf php-8.2.8.tar.gz && cd php-8.2.8
export LDFLAGS="-L/opt/openssl/lib64 -Wl,-rpath=/opt/openssl/lib64"
export PKG_CONFIG_PATH=/opt/openssl/lib64/pkgconfig
// 安装其他扩展可以添加相应的参数
./configure -prefix=/usr/local/php --with-openssl
make && make install

需要注意的地方

  • LDFLAGS 变量告诉链接器把指定的openssl路径添加到php可执行文件中。如果 openssl 安装在非标准路径,运行 php 可能找不到库错误。
  • PKG_CONFIG_PATH 变量是指定新装openssl 库的位置。