Php7安装pdo_pgsql,pgsql扩展

吴宇 2020-02-25 14℃ 0条

lnmp现在估计用的很多,如果想把mysql换成postgresql,那么必须让php支持pgsql扩展。为了不重新编译php,可以使用phpize工具进行追加。

  • 找到php源码包自带的ext目录里的pgsql库
cd /usr/local/src/php-7.1.32/ext/pgsql

       可以看到pgsql文件夹下有以下文件

root@wuyu_ubuntu:/usr/local/src/php-7.1.32/ext/pgsql# ll
total 264
drwxr-xr-x  3 wuyu wuyu   4096 Aug 28 07:09 ./
drwxr-xr-x 75 wuyu wuyu   4096 Aug 28 07:09 ../
-rw-r--r--  1 wuyu wuyu   5282 Aug 28 07:09 config.m4
-rw-r--r--  1 wuyu wuyu   1350 Aug 28 07:09 config.w32
-rw-r--r--  1 wuyu wuyu     69 Aug 28 07:09 CREDITS
-rw-r--r--  1 wuyu wuyu   1674 Aug 28 07:09 mysql_users.php
-rw-r--r--  1 wuyu wuyu 201350 Aug 28 07:09 pgsql.c
-rw-r--r--  1 wuyu wuyu   4417 Aug 28 07:09 pgsql.mak
-rw-r--r--  1 wuyu wuyu  10309 Aug 28 07:09 php_pgsql.h
-rw-r--r--  1 wuyu wuyu   8578 Aug 28 07:09 README
drwxr-xr-x  2 wuyu wuyu   4096 Aug 28 07:09 tests/
  • 通过phpize建立php外挂模块
root@wuyu_ubuntu:/usr/local/src/php-7.1.32/ext/pgsql# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303

       执行完可以看到文件夹下多出来很多文件,其中包含configure

root@wuyu_ubuntu:/usr/local/src/php-7.1.32/ext/pgsql# ll
total 1512
drwxr-xr-x  5 wuyu wuyu   4096 Feb 25 06:56 ./
drwxr-xr-x 75 wuyu wuyu   4096 Aug 28 07:09 ../
-rw-r--r--  1 root root  84357 Feb 25 06:56 acinclude.m4
-rw-r--r--  1 root root 314734 Feb 25 06:56 aclocal.m4
drwxr-xr-x  2 root root   4096 Feb 25 06:56 autom4te.cache/
drwxr-xr-x  2 root root   4096 Feb 25 06:56 build/
-rwxr-xr-x  1 root root  42938 Feb 25 06:56 config.guess*
-rw-r--r--  1 root root   3515 Feb 25 06:56 config.h.in
-rw-r--r--  1 wuyu wuyu   5282 Aug 28 07:09 config.m4
-rwxr-xr-x  1 root root  35987 Feb 25 06:56 config.sub*
-rwxr-xr-x  1 root root 477314 Feb 25 06:56 configure*
-rw-r--r--  1 root root   4684 Feb 25 06:56 configure.in
-rw-r--r--  1 wuyu wuyu   1350 Aug 28 07:09 config.w32
-rw-r--r--  1 wuyu wuyu     69 Aug 28 07:09 CREDITS
-rw-r--r--  1 root root      0 Feb 25 06:56 install-sh
-rw-r--r--  1 root root 199728 Feb 25 06:56 ltmain.sh
-rw-r--r--  1 root root   7156 Feb 25 06:56 Makefile.global
-rw-r--r--  1 root root      0 Feb 25 06:56 missing
-rw-r--r--  1 root root      0 Feb 25 06:56 mkinstalldirs
-rw-r--r--  1 wuyu wuyu   1674 Aug 28 07:09 mysql_users.php
-rw-r--r--  1 wuyu wuyu 201350 Aug 28 07:09 pgsql.c
-rw-r--r--  1 wuyu wuyu   4417 Aug 28 07:09 pgsql.mak
-rw-r--r--  1 wuyu wuyu  10309 Aug 28 07:09 php_pgsql.h
-rw-r--r--  1 wuyu wuyu   8578 Aug 28 07:09 README
-rw-r--r--  1 root root  82608 Feb 25 06:56 run-tests.php
drwxr-xr-x  2 wuyu wuyu   4096 Aug 28 07:09 tests/
  • 执行configure
./configure --with-php-config=/usr/local/php/bin/php-config

       出现报错:configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path

       执行apt-get install -y libpq-dev即可。

  • 编译安装
make && make install

       编译安装完只有,可以在/usr/local/php/lib/php/extensions/no-debug-zts-20160303/下找到pgsql.so

  • php.ini中加上
extengsions=pgsql.so
  • 最后,执行php -m可以看到已经pgsql扩展。
标签: phplinux

非特殊说明,本博所有文章均为博主原创。