Apache-2.2

Apache 不會在啟用 PDO MySQL 的情況下重新啟動

  • June 23, 2009

我嘗試使用以下命令將 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 驅動程序來解決這個問題。

引用自:https://serverfault.com/questions/28830