2009-07-22 11 views
3

Iもともとasked this question on ServerFaultとPHP 5.1.6および任意の応答を持って、私はそれがそう、ここに関連なってプログラミングの姿なかったが...コンパイルPDOのMySQL


しばらく前に私たちの大規模なクライアントが移動しましたすべてのライブサーバ上で一貫性のあるソフトウェア環境を指定した単一のホスティングプロバイダに送信します。

これには、Apache 2.2.8とPHP 5.1.6が含まれます。

私たちは開発用のubuntu 8.04サーバを持っていましたが、これらのバージョンのApacheとPHPはデフォルトでインストールされていません。だから私はソースからコンパイルしなければならなかった。これらのバージョンは、今や1年以上にわたって喜んで実行されています。

私たちは新しいサイトビルドを開始しており、PDO_MySQLを必要とするZendFramewordを使用したいと考えています。私は再コンパイルしようとした

次...すべてが正常に動作し、私はバックアップApacheを持ったときに、それは私に新しいは./configureを示し

./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 

(アンダースコアは、行の継続を示しています) phpinfo()にあります。

これを実行すると、MySQLの動作が停止し、MYSQLセクションが消え、msyqlの動作が停止します。 libtoolは...

/libに/ PHP /拡張/非デバッグ非ZTS-20050922

は/ usr/localに* .soのファイルを置く

メイク、make installを、私は、PDOは、私は誰もが私が間違っているつもりだところを私に伝えることができ、大規模な* nixの人ではないよ

./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 

であるMySQLを有効にではなく、これは以前に使用している設定。

おかげ

+0

5.2と呼ばれるパッケージで提供されるのDebian/Ubuntuシステム上にある場合。10/5.3.0は現在の安定リリースです。セキュリティ上の脆弱性を知られているかもしれない3歳のバージョンをお望みですか? – Kornel

+0

@porneL私たちの大手クライアントは、以前はすべてのライブサーバで一貫性のあるソフトウェア環境を指定した単一のホスティングプロバイダに移行しました。 –

+0

@porneL私たちは、我々が与えられたものを使う必要がある状況にいる。クライアントはかなり大規模であり(世界中で数百ブランド)、異なるバージョンへの移行は迷惑な作業です。 "それが壊れていなければ、それを修正しないでください"とすべてのこと... –

答えて

3

私はそれが本当に役立つかわからないけど、何があなたのconfigure行に「=shared」のすべてのインスタンスを削除する場合は?

例えば、ここで私はいくつかの時間前に使用してきたconfigureコマンドは、(の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' 

(改行が読みやすさのために追加された)

助けてくれますか?

+0

私はそれを打つつもりです!歓声 –

+0

それは働いた。本当に自分自身のことを考えなければならない。私は共有モジュールとの作業コンパイルを見ることに興味があります。ちょうど学習の練習として –

+0

OK、問題がどこに来ていたのか知​​りたい。実際には、「共有」したことがありませんでした。私は**決して使ったことがありません。^^ –

-1

PHP全体を再コンパイルする必要はありません。 PDO_MYSQLモジュールだけをコンパイルするだけです。それをインストールするpeclを使用します。

pecl install PDO_MYSQL 

あなたはphpizeがインストールされている必要がありますそのために。 Debianマシンでは、php5-devというパッケージで提供されています。その後、php.iniに追加してApacheを再起動してください。

あなたはPDO_MYSQLはphp5-mysql

+0

投稿から「私たちは開発用のubuntu 8.04サーバを持っていましたが、ApacheとPHPのこれらのバージョンはデフォルトではインストールされていないので、ソースからコンパイルする必要がありました。 –