PHP に拡張機能をインストールするにはどうすればよいでしょうか。多くの人は Pecl を使うと答えるでしょう。確かに Pecl は拡張機能を簡単にインストールできる、とても便利な方法です。しかし、サーバーに Pecl がない場合はどうすればよいでしょうか。また、何らかの理由で Pecl をインストールできない場合はどうでしょう。そのときは、手動でコンパイルしてインストールするしかありません~ この記事では、Linux で PHP 拡張機能を手動でコンパイルする方法を紹介します。

上で触れた「Pecl をインストールできない」状況は、本当に起こるのでしょうか。私の場合は、パッケージ型の環境でサイトを運用しているため、この問題に遭遇しました。少し前、MongoDB の PHP ドライバーをインストールする必要がありました。しかし、サーバーには LNMP のお手軽パッケージが入っていて、Pecl は含まれていませんでした。手動で Pecl をインストールすると、もともと LNMP に入っていたプログラムの一部が上書きされてしまいます。そこで、拡張機能を手動でコンパイルすることにしたのです~~

PHP 拡張機能を手動でコンパイルする手順

1.PHP 拡張機能を自分でコンパイルするには、まず当然ながらソースコードを取得する必要があります~

個人的には、Pecl の公式サイト(http://pecl.php.net)から PHP 拡張機能のソースコードをダウンロードすることをおすすめします。ここでは MongoDB ドライバーを例に説明します

wget -c http://pecl.php.net/get/mongo-1.2.7.tgz

tar -zxf mongo-1.2.7.tgz

cd mongo-1.2.7

2.phpize を実行して初期化します

phpize

3.configure の設定を行います。$PATH は php-config の場所です。デフォルトでは、PHP のルートディレクトリにある bin フォルダの中にあります

./configure --with-php-config=$PATH

4.いよいよコンパイルです~ コマンド:

make && make install

5.コンパイルが完了すると、mongo.so ファイルは自動的に PHP の拡張機能のフォルダに保存されます

6.php.ini を編集し、次の一行を追加します:

vi php.ini

extension=“mongo.so”

mongo.so の部分は、インストールした拡張機能の .so ファイル名に置き換えてください。

7.最後に apache を再起動し、phpinfo() のファイルを確認すると、インストールが成功したかどうかがわかります~

参考記事:http://mattiasgeniar.be/2008/09/14/how-to-compile-and-install-php-extensions-from-source/