PHP 5.2.17环境开启PostgreSQL连接SSL支持的编译配置问题
关于PHP 5.2.17 启用pgsql SSL支持的操作方案
libpg包获取渠道
- 若使用Debian/Ubuntu系Docker基础镜像:直接通过系统源安装
libpq-dev包即可,该包已包含libpg的运行库和头文件,可直接被PHP编译流程识别,安装命令为apt update && apt install -y libpq-dev - 若使用RHEL/CentOS系基础镜像:对应包名为
postgresql-devel,安装命令为yum install -y postgresql-devel - 若需要特定版本手动编译适配:可从PostgreSQL 8.x~9.2区间的官方源码包编译生成,该版本区间的libpg和PHP 5.2.17兼容性最高,编译PostgreSQL源码时默认会生成libpg相关文件,安装到系统路径即可调用
整合libpg重新编译PHP的操作步骤
- 进入PHP 5.2.17源码目录,执行
make clean清理之前的编译缓存 - 调整原有编译配置参数,在原
configure命令基础上新增对应pgsql扩展参数:- 基础pgsql驱动添加:
--with-pgsql=shared,/usr,路径/usr为libpg的默认系统安装路径,若手动编译过libpg则替换为对应自定义安装路径 - PDO pgsql驱动按需添加:
--with-pdo-pgsql=shared,/usr
说明:PHP 5.2版本只要检测到libpg本身已支持SSL,编译pgsql扩展时会自动继承SSL能力,无需额外添加SSL专属编译参数
- 基础pgsql驱动添加:
- 运行调整后的
configure命令,检查输出日志中是否存在checking for PostgreSQL support... yes、checking for SSL support in libpq... yes两条记录,确认libpg及其SSL能力被正常识别 - 执行
make && make install完成编译安装 - 编辑
php.ini配置文件,新增扩展启用配置:extension=pgsql.so extension=pdo_pgsql.so ; 仅开启PDO驱动时需要添加 - 重启Apache服务,通过
phpinfo()查看pgsql扩展板块,确认SSL support项显示为enabled即配置完成
注意事项
- PHP 5.2已停止维护多年,若编译过程中出现依赖兼容问题,建议降级libpg到PostgreSQL 9.1及以下版本,可大幅降低适配成本
- Docker环境下建议将编译流程写入Dockerfile,避免后续容器重建时重复操作
内容的提问来源于stack exchange,提问作者Henkie85
相关产品推荐
相关产品推荐

