Mysql

使用 PDO MySQL 編譯 PHP 5.1.6

  • July 23, 2009

更新

我在 StackOverflow 上問過這個問題,因為當時我在這裡沒有得到任何答案。 為了完整起見,這是答案的連結。一旦我嘗試了以下 Dan C 的解決方案,我會喜歡該頁面。


原版的

不久前,我們的一個大客戶轉移到了一個託管服務提供商,該提供商指定了一個軟體環境,該環境在所有實時伺服器上都是一致的。

其中包括 Apache 2.2.8 和 PHP 5.1.6。

我們有一個用於開發的 ubuntu 8.04 伺服器,這些版本的 Apache 和 PHP 不是預設安裝的。所以我不得不從原始碼編譯它們。這些版本已經愉快地執行了一年多。

我們正在開始一個新的站點建構,我們想使用需要 PDO_MySQL 的 ZendFrameword。

我嘗試使用以下內容重新編譯…

./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/user/local/apache2/conf/php.ini \
--with-curl=/usr/lib/ --with-mysql=shared --with-mysqli=shared \
--with-zlib --with-gd --with-jpeg-dir=/usr/local/lib/ \
--with-freetype-dir=/usr/lib/ --enable-soap --enable-pdo=shared \
--with-pdo-mysql=shared --with-sqlite=shared
...
make
...
make install
...
libtool --finish /sources/php-5.1.6/libs

一切正常,當我恢復 apache 時,它會在 phpinfo() 中顯示新的 ./configure。

執行此操作後,MySQL 停止工作,MYSQL 部分消失,msyql 停止工作。

make、make install、libtool… 將 *.so 文件放入

/usr/local/lib/php/extensions/no-debug-non-zts-20050922

我之前使用的啟用 MySQL 但未啟用 PDO 的配置是

./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/user/local/apache2/conf/php.ini \
--with-curl=/usr/lib/ --with-mysql --with-mysqli \
--with-zlib --with-gd --with-jpeg-dir=/usr/local/lib/ \
--with-freetype-dir=/usr/lib/ --enable-soap

我不是一個龐大的 *nix 人,誰能告訴我哪裡出錯了。

謝謝

第一的:

您的--with-config-file-path標誌中有一個無關的“e”。

如果錯字也在你的真實中configure,那麼它可能是你的問題的原因。

第二:

PHP 需要知道從哪裡載入擴展。

您可以通過php.ini如下編輯來告訴它搜尋您記下的目錄:

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20050922/"

請注意:

反斜杠是續行的常用符號。

如果您將命令複製/粘貼到終端,您的 shell 將安全地解釋它們。

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