如何让 PDO 在我的 mac (os x 10.5) 上工作?我在 Zend/Eclipse 中使用内置的 php 和 php。似乎根本找不到有用的驱动程序。
5 回答
我最近不得不在 Leopard 上安装 PDO_PGSQL 驱动程序,并且遇到了许多问题。在寻找答案的过程中,我偶然发现了这个问题。现在我已经成功安装了它,所以,即使这个问题已经很老了,我希望我的发现可以帮助其他人(比如我自己),他们无疑会遇到类似的问题。
您需要做的第一件事是安装 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 就会启动并运行。
看看这个 PECL 包:PDO_PGSQL
我自己没有尝试过,但我一直对使用 Postgres 作为 MySQL 的替代品感兴趣。如果我有机会很快尝试一下,我会把我的结果放在这里以防万一。
我不确定这对 PDO 驱动程序是否有帮助,但您可能会查看BitNami 的 MAPPStack。
我在 Mac 上使用 Postgres、PHP 和 Apache 时遇到了很多麻烦,其中一些与其中一些或全部的 64 位和 32 位版本有关。到目前为止,BitNami MAPPStack 安装总体上运行良好。也许它也会帮助您解决 PDO 问题。
通过 brew 安装新的 php 版本并重新启动服务器,以及 php -v,所有问题都被删除。
这对我有用
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。