Apache 不會在啟用 PDO MySQL 的情況下重新啟動
我嘗試使用以下命令將 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 驅動程序來解決這個問題。