由于之前安装了postgresql数据库,但使用adminer连接时却显示php没有安装pdo_pgsql扩展。所以只能自己再编译了
环境
centos7: 内核版本:3.10.0-693.el7.x86_64
php7.1.7: 使用lnmp1.4脚本用源码进行编译获得
编译
找到之前lnmp脚本下载的php源码包,解压后找到pdo_pgsql扩展目录。
// 源码包目录
cd /root/lnmp/lnmp1.4/src
// 解压后找到 ./php-71.7/ext 目录,里面是php的各种扩展源码
cd ./php-71.7/ext/pdo_pgsql
// 在该源码目录下使用phpize工具
// phpize官方文档:http://php.net/manual/zh/install.pecl.phpize.php
phpize
// 输出结果类似
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
// 配置编译,--with-php-config参数为php-config的文件目录,--with-pdo-pgsql参数为pg_config目录
// 官方文档:http://php.net/manual/en/ref.pdo-pgsql.php
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-pgsql=/usr/pgsql-10/bin/
// 配置时可能需要安装libpq插件
yum install libpqxx-dev
// 安装完libpqxx-dev插件后,重新配置,成功后进行编译
make&&make install
// 完成后,输出类似如下
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
配置php.ini
获得pdo_pgsql扩展的目录后,修改php.ini文件。可以直接在文件结尾处添加扩展配置。
// 获得php.ini目录
php --ini
// 修改文件,添加配置语句
// extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/pdo_pgsql.so
vim /usr/local/php/etc/php.ini
// 重启php
lnmp php-fpm restart
// 查看已安装的扩展
php -m