2008-09-15 109 views

回答

31

我不得不在Leopard上最近安装PDO_PGSQL驱动程序,并且遇到了许多问题。在我寻找答案时,我偶然发现了这个问题。现在我已经成功安装了,所以即使这个问题很老,我希望我所发现的可以帮助其他人(比如我自己),他们无疑会遇到类似的问题。

您需要做的第一件事是install PEAR,如果您还没有这样做,因为默认情况下它并未安装在Leopard上。

一旦你做到这一点,使用PECL安装程序下载PDO_PGSQL包:

$ pecl download pdo_pgsql 
$ tar xzf PDO_PGSQL-1.0.2.tgz 

(注意:您可能需要运行pecl作为超级用户,即sudo pecl

之后,由于PECL安装程序无法直接安装扩展程序,因此您需要自行构建和安装它:

$ cd PDO_PGSQL-1.0.2 
$ phpize 
$ ./configure --with-pdo-pgsql=/path/to/your/PostgreSQL/installation 
$ make && sudo make install 

如果全部去好吧,你应该有一个名为“pdo_pgsql.so”的文件,该文件应该看起来像“/usr/lib/php/extensions/no-debug-non-zts-20060613/”(PECL安装应该输出安装扩展的目录)。

要完成安装,您需要编辑您的php.ini文件。找到标有“动态扩展”的部分,以及(可能是注释掉)的扩展列表下,加入这一行:

extension=pdo_pgsql.so 

现在,假设这是你已经安装了PHP扩展的第一次,有两个为了实现这一目标,您需要采取额外步骤。首先,在php.ini,找到extension_dir指令(在“路径和目录”),并将其更改为该pdo_pgsql.so文件被安装在目录。例如,我extension_dir指令看起来像:

extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613" 

第二如果您使用的是64位Intel Mac,则需要使Apache以32位模式运行。 (如果有更好的策略,我想知道,但现在,这是我能找到的最好的策略。)为此,请编辑位于/System/Library/LaunchDaemons/org.apache.httpd.plist的属性列表文件。查找这两行:

<key>ProgramArguments</key> 
<array> 

下边,添加这三行:

<string>arch</string> 
<string>-arch</string> 
<string>i386</string> 

现在,只需重新启动Apache和PDO_PGSQL将是启动和运行。

1

我不确定这会专门帮助PDO驱动程序,但您可以查看BitNami's MAPPStack

我的Mac上有很多Postgres,PHP和Apache的问题,有些问题与64位或32位版本的部分或全部问题有关。到目前为止,BitNami MAPPStack安装一般运行良好。也许它会帮助你解决PDO问题。

2

看看这个PECL包:PDO_PGSQL

我还没有尝试过自己,但我一直感兴趣的在Postgres发挥作为替代到MySQL。如果我有机会尽快尝试,我会把结果放在这里以防万一。

0

这对我来说

brew install php55-pdo-pgsql 

这将安装PHP 32年5月5日和PostgreSQL 9.5什么工作。我已经有PostgreSQL的9.4安装,所以我卸载了自制版本:

brew uninstall postgres 

然后,您必须更新/etc/apache2/httpd.conf指向正确的PHP版本并重新启动Apache:

LoadModule php5_module /usr/local/Cellar/php55/5.5.32/libexec/apache2/libphp5.so 

我的OSX版本是Yosemite。

1

通过brew和重新启动服务器安装新的php版本,并且php -v将删除所有问题。

相关问题