我尝试使用以下命令将 PDO MySQL 驱动程序安装到 Solaris 服务器上:
$ pecl download pdo_mysql
$ tar xzf PDO_MYSQL-1.0.2.tgz
$ cd PDO_MYSQL-1.0.2
$ phpize
$ ./configure --with-pdo-mysql=/usr/local/mysql
$ make
$ make install
每当我使用“./apachectl restart”重新启动 apache 时,它都无法启动(我只是假设它不会加载其上托管的任何网站 - 运行上述命令时我没有收到任何错误消息)。
我的扩展目录是“/usr/local/lib/php/extensions/no-debug-non-zts-20060613/”,php.ini 文件中有以下行“extension=pdo_mysql.so”。extension_dir 中确实生成了一个新的 pdo_mysql.so 文件。当我注释掉“extension=pdo_mysql.so”时,Apache 成功启动。
如果我尝试该命令,pecl install pdo_mysql
我会得到pecl/pdo_mysql is already installed and is the same as the released version 1.0.2
。
我的安装可能出了什么问题?在哪里可以找到 Apache 无法启动的错误消息?
更新:我找到我的错误日志并发现了以下消息:
ld.so.1: php: fatal: relocation error: file /usr/local/lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so: symbol php_pdo_declare_long_constant: referenced symbol not found
Killed
另外,这可能是我的 php.ini 文件中必须有“pdo_mysql.so”,但 pdo.so 却没有的问题吗?PDO(不是 PDO MySQL 驱动程序)没有作为 php.ini 的扩展加载,但似乎已包含在我的 PHP 安装中。
有任何想法吗?
答案1
显然这是我所使用的 PHP 版本中的一个已知错误:http://pecl.php.net/bugs/bug.php?id=12141
我们最终通过编译未编译 PDO 的 PHP 新版本并使用 PECL 安装 PDO 驱动程序来解决这个问题。