2009-07-22 34 views
3

我本來asked this question on ServerFault並沒有得到任何回覆,我想它的節目相關的話,在這裏不用...編譯PHP 5.1.6與PDO的MySQL


前一陣子大客戶我們的感動到一個託管服務提供商指定了一個軟件環境,這個環境在所有活動服務器中都是一致的。

Amongs其他的東西,這包括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的備份,它讓我看到新的./configure在phpinfo()中。

這樣做後,MySQL停止工作,MYSQL部分消失,msyql停止工作。

的牌子,使安裝,libtool的...提出的* .so文件

在/ usr/local/lib目錄/ PHP /分機/無調試非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的人,誰能告訴我,我要去哪裏錯了。

感謝

+0

5.2提供。10/5.3.0是當前的穩定版本。你確定你想要3歲的版本可能已知安全漏洞? – Kornel 2009-07-22 10:59:49

+0

@porneL前段時間,我們的一個大客戶轉移到了一個託管服務提供商,他指定了一個軟件環境,這個環境在所有活動服務器上都是一致的。 – 2009-07-22 11:07:11

+0

@porneL我們處於必須使用我們所得到的狀態。客戶非常龐大(全球有數百個品牌),因此遷移到不同版本是一項艱鉅的任務。 「如果它沒有損壞,請不要修理它」以及所有...... – 2009-07-22 11:08:34

回答

3

我不知道它會真正幫助,但如果你在配置行中刪除的「=shared」每一個實例是什麼?

例如,這裏是我前一段時間使用*(由的phpinfo給出)的配置命令:

$ /usr/local/php-5.1.6/bin/php -i | grep 'configure' 
Configure Command => './configure' '--prefix=/usr/local/php-5.1.6' '--with-config-file-path=/etc/php-5.1.6' 
    '--with-apxs2=/usr/bin/apxs2' '--disable-ipv6' '--with-openssl' '--with-zlib' '--enable-bcmath' 
    '--with-bz2' '--with-curl' '--enable-exif' '--enable-ftp' '--with-gd' '--with-ttf' 
    '--enable-gd-native-ttf' '--with-imap-ssl' '--with-ldap' '--enable-mbstring' '--with-mcrypt' 
    '--with-mhash' '--with-mysql' '--with-mysqli' '--enable-pcntl' '--with-pdo-mysql' '--with-pdo-sqlite' 
    '--enable-shmop' '--enable-soap' '--enable-sockets' '--enable-sqlite-utf8' '--with-xmlrpc' 
    '--with-xsl' '--with-pear' 

(新行增加了可讀性的原因)

它有幫助嗎?

-1

無需重新編譯整個PHP。只需編譯PDO_MYSQL模塊。使用pecl進行安裝:

pecl install PDO_MYSQL 

對於您需要安裝phpize。在Debian機器上,它由名爲php5-dev的軟件包提供。之後,將其添加到您的php.ini並重新啓動Apache。

如果您在Debian/Ubuntu系統PDO_MYSQL在呼包php5-mysql