我尝试使用以下命令将 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 安装中。
有任何想法吗?
显然这是我使用的 PHP 版本中的一个已知错误:http ://pecl.php.net/bugs/bug.php?id=12141
我们最终通过编译没有编译 PDO 的新版本 PHP 并使用 PECL 安装 PDO 驱动程序来解决这个问题。