2016-07-26 142 views
0

我得到下面的錯誤,而試圖用PHP &的Apache OS X埃爾卡皮坦運行PostgreSQL:pg_connect()未定義的錯誤與OSX

Fatal error: Call to undefined function pg_connect()

我已經安裝的Apache & PHP近日現在想來爲數據庫查詢添加PostgreSQL。到目前爲止,Postgres.app與Java一起工作良好。我擔心我會錯過一些非常微不足道的配置細節。

PHP與PHP版本34年5月5日的工作很好,所以我只是想跑:

brew install php55-pdo-pgsql 

我調整了Apache的配置和公認的釀造安裝了PHP 38年5月5日,爲的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

你是怎麼得到/安裝php的?我沒有看到postgresql的啓用。 –

+0

我已經安裝了版本5.5.34,並按照指導獲得了使用php運行的apache服務器。對於更高版本:是不是用brew install命令安裝,因爲它是依賴性的? –

+0

關於postgresql:brew安裝postgresql說已經安裝了9.5.3 –

回答

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,你就可以創建自己的。

0

同樣對於php7現在是--with-postgresql

Warning: homebrew/php/php71: --with-pgsql was deprecated; using --with-postgresql instead!