如何让PDO在我的mac上运行(os x 10.5)?我在Zend / Eclipse中使用内置的php和php。似乎无法找到有用的驱动程序。
答案 0 :(得分: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
文件的目录。例如,我的{{ 1}}指令看起来像:
extension_dir
第二步,如果您使用的是64位Intel Mac,则需要让Apache以32位模式运行。 (如果有更好的策略,我想知道,但是现在,这是我能找到的最好的。)为了做到这一点,请编辑位于extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613"
的属性列表文件。找到这两行:
/System/Library/LaunchDaemons/org.apache.httpd.plist
在他们之下,添加以下三行:
<key>ProgramArguments</key>
<array>
现在,只需重新启动Apache,PDO_PGSQL就会启动并运行。
答案 1 :(得分:2)
看看这个PECL包:PDO_PGSQL
我自己没有尝试过,但我一直对使用Postgres作为MySQL的替代品感兴趣。如果我有机会尽快尝试,我会把结果放在这里,以防它有用。
答案 2 :(得分:1)
我不确定这会对PDO驱动程序有什么帮助,但您可能会考虑BitNami's MAPPStack。
我在Mac上使用Postgres,PHP和Apache遇到了很多麻烦,其中一些与部分或全部的64位版本和32位版本有关。到目前为止,BitNami MAPPStack安装一般都很好用。也许这对你的PDO问题也有帮助。
答案 3 :(得分:1)
通过brew和restart服务器安装新的php版本,并且php -v会删除所有问题。
答案 4 :(得分:0)
这对我有用
brew install php55-pdo-pgsql
这将安装PHP 5.5.32和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。