我正在运行 OS X 10.5;它看起来已经安装了 Apache 和 PHP(除了我打开的一些小配置)每页;我以前使用过 Apache,所以我知道 httpd.conf 的基本工作原理)。
我有一个使用 PDO 的现有脚本。我有一个 MySQL 数据库,并且可以轻松配置我的脚本以通过 PDO MySQL 或 PDO ODBC 访问数据库。问题是,即使我在 php.ini 中启用了 PDO MySQL 和 PDO ODBC 扩展,phpinfo() 仍报告唯一的 PDO 驱动程序是 sqlite2 和 sqlite。我猜相关扩展 .dll 或 .so 文件不存在?我如何获取它们?
注意:我使用的是 PHP 的内置安装。(请参阅apple 关于启用 php 的页面,其中没有提到任何有关配置或添加其他 .so 文件的内容)
答案1
默认的 PHP 安装不是很有用。获取 OSX 标准 unix 软件包功能更齐全版本的最简单方法是使用 MacPorts 或 Fink。我个人更喜欢 MacPorts,尽管我认为大多数人更喜欢 Fink。
答案2
在 OSX 10.7 和 10.8 中,MySQL 的 PDO 驱动程序默认可用。 但是,你可能需要进行其他更改,如本文所述。
答案3
您需要使用参数运行 configure:
--with-pdo-mysql=/sw
/sw
如果您使用 Fink。如果不使用 Fink,请将其更改为您的include/mysql.h
和所在的路径lib/libmysqlclient.la
(locate mysql.h
会有所帮助)。
如果您只想将 PDO 扩展添加到现有安装中,请下载 PHP 源,转到ext/pdo
目录,运行:
phpize && ./configure && make && sudo make install
这将为.so
您创建并安装适当的文件。脚本将告诉您它放在哪里。有时它会弄错目录,因此请确保它extension_dir
与您的php.ini
.
答案4
如果pdo_sqlite
扩展程序已经运行,则不需要重新安装pdo
扩展程序本身——只需重新安装pdo_mysql
扩展程序即可。
下载与内置相同版本的 PHP 源代码,然后:
cd ext/pdo_mysql
phpize
./configure --with-pdo-mysql=shared
make
sudo make install
应该就这么简单。