由于之前安装了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

END

作者:xx212357mm
链接:https://www.jianshu.com/p/0fa958fcfc3a
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

发表评论

邮箱地址不会被公开。 必填项已用*标注