PHP的OpenSSL扩展提供了加密解密、数字签名、HTTPS请求处理等安全相关的功能,很多业务场景都需要该扩展的支持。如果当前PHP环境没有启用OpenSSL,可以按照以下方式完成配置。

源码编译安装时开启OpenSSL支持
如果是从源码编译安装PHP,在配置编译参数时添加--with-openssl选项即可自动开启OpenSSL支持,前提是系统已经安装了OpenSSL的开发依赖。
安装系统依赖
不同系统的依赖安装命令如下:
- Ubuntu/Debian系统:
sudo apt-get install libssl-dev
- CentOS/RHEL系统:
sudo yum install openssl-devel
配置编译参数
进入PHP源码目录后执行配置命令,示例如下:
./configure --prefix=/usr/local/php --with-openssl --其他需要的编译参数
配置完成后执行编译和安装命令:
make && make install
已安装PHP环境新增OpenSSL扩展
如果PHP已经安装完成,没有重新编译的需求,可以单独编译OpenSSL扩展然后手动启用。
进入扩展源码目录
PHP源码的ext目录下包含自带扩展的源码,进入openssl扩展目录:
cd php源码目录/ext/openssl
生成编译配置
使用phpize命令生成扩展的编译配置文件:
/usr/local/php/bin/phpize
编译安装扩展
执行以下命令完成扩展的编译和安装:
./configure --with-php-config=/usr/local/php/bin/php-config make && make install
修改PHP配置文件
安装完成后,在php.ini配置文件中添加扩展启用项:
extension=openssl.so
如果是Windows环境,去掉php.ini中extension=openssl前面的分号注释即可,同时确保系统目录下存在对应的php_openssl.dll文件。
验证OpenSSL支持是否生效
配置完成后重启PHP服务(如果是PHP-FPM则重启php-fpm,如果是Apache模块则重启Apache),然后通过以下方式验证。
命令行验证
执行PHP命令查看扩展加载情况:
php -m | grep openssl
如果输出openssl则表示扩展已经成功加载。
脚本验证
创建测试脚本test_openssl.php,内容如下:
<?php
// 检查OpenSSL扩展是否加载
if (extension_loaded('openssl')) {
echo "OpenSSL扩展已成功启用";
} else {
echo "OpenSSL扩展未启用";
}
?>访问该脚本或者通过命令行执行php test_openssl.php,查看输出结果即可确认配置是否生效。
常见问题说明
- 编译时提示找不到OpenSSL头文件:检查系统是否安装了openssl-devel或者libssl-dev依赖,确保头文件路径被正确识别。
- Windows环境下扩展不生效:检查php_openssl.dll文件是否存在,同时确认PHP版本和扩展版本匹配,并且相关依赖的DLL文件已经添加到系统路径。
- 配置修改后不生效:确认修改的是当前PHP进程加载的php.ini文件,可以通过
php --ini命令查看加载的配置文件路径。