我尝试使用PHP& amp;运行PostgreSQL时遇到以下错误OS X上的Apache El Capitan:
致命错误:调用未定义的函数pg_connect()
我已经设置了Apache& PHP最近想要为数据库查询添加PostgreSQL。到目前为止,Postgres.app与Java运行良好。我担心我会错过一些非常简单的配置细节。
PHP与PHP版本5.5.34配合得很好,所以我只想运行:
brew install php55-pdo-pgsql
我调整了apache-config并识别brew安装的php 5.5.38,作为phpinfo();现在显示38而不是34。
在终端输入php -v仍然给我5.5.34。
我也尝试过:
brew install php56-pdo-pgsql
但是pg_connect()仍未定义。 的phpinfo();然后返回:
PHP Version 5.6.24 System Darwin XXXYYYZZZ 15.5.0 Darwin Kernel Version 15.5.0: Tue Apr 19 18:36:36 PDT 2016; root:xnu-3248.50.21~8/RELEASE_X86_64 x86_64
Build Date Jul 22 2016 02:40:35
Configure Command './configure' '--prefix=/usr/local/Cellar/php56/5.6.24' '--localstatedir=/usr/local/var' '--sysconfdir=/usr/local/etc/php/5.6' '--with-config-file-path=/usr/local/etc/php/5.6' '--with-config-file-scan-dir=/usr/local/etc/php/5.6/conf.d' '--mandir=/usr/local/Cellar/php56/5.6.24/share/man' '--enable-bcmath' '--enable-calendar' '--enable-dba' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-mbregex' '--enable-mbstring' '--enable-shmop' '--enable-soap' '--enable-sockets'
'--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-wddx' '--enable-zip' '--with-freetype-dir=/usr/local/opt/freetype' '--with-gd' '--with-gettext=/usr/local/opt/gettext' '--with-iconv-dir=/usr' '--with-icu-dir=/usr/local/opt/icu4c' '--with-jpeg-dir=/usr/local/opt/jpeg' '--with-kerberos=/usr' '--with-libedit' '--with-mhash' '--with-ndbm=/usr' '--with-png-dir=/usr/local/opt/libpng' '--with-xmlrpc' '--with-zlib=/usr' '--with-readline=/usr/local/opt/readline' '--without-gmp' '--without-snmp'
'--with-libxml-dir=/usr/local/opt/libxml2' '--with-pdo-odbc=unixODBC,/usr/local/opt/unixodbc' '--with-unixODBC=/usr/local/opt/unixodbc' '--with-apxs2=/usr/sbin/apxs' '--libexecdir=/usr/local/Cellar/php56/5.6.24/libexec' '--with-bz2=/usr' '--disable-debug' '--with-openssl=/usr/local/opt/openssl' '--enable-fpm' '--with-fpm-user=_www' '--with-fpm-group=_www' '--with-curl' '--with-xsl=/usr' '--with-ldap' '--with-ldap-sasl=/usr' '--with-mysql-sock=/tmp/mysql.sock' '--with-mysqli=mysqlnd' '--with-mysql=mysqlnd'
'--with-pdo-mysql=mysqlnd' '--disable-opcache' '--enable-pcntl' '--without-pear' '--enable-dtrace' '--disable-phpdbg' '--enable-zend-signals' 'CC=clang' 'CXX=clang++'
[...]
pdo_pgsql
PDO Driver for PostgreSQL enabled
PostgreSQL(libpq) Version 9.5.3
Module version 1.0.2
Revision $Id: 0e858dd2051ca8c2fd3c781909a0670ab5fecd36 $
答案 0 :(得分:0)
对于遇到同样问题的人,只需运行:
brew install php56 --with-postgresql
而不仅仅是
brew install php56
这将使用pgsql和pdo-pgsql模块设置php。就我而言,缺少pgsql模块。
我做了:
brew install php56
brew install php56-pdo-pgsql
似乎只用pdo-pgsql而不是pgsql模块安装php
请参阅:https://serverfault.com/questions/533103/how-to-add-postgres-support-to-php-installed-by-homebrew
毕竟我开始使用postgresql并使用了psql:
brew services start postgresql
psql postgres
标准超级用户就像我的mac登录名(可能不像通常的postgres),但一旦连接到psql,你就可以自己创建。
答案 1 :(得分:0)
同样适用于php7
,现在是--with-postgresql
。
Warning: homebrew/php/php71: --with-pgsql was deprecated; using --with-postgresql instead!