記載日:2010/07/24
PHP 4.4.9 PHP 5.3.2 Ubuntu 9

1.ここで扱う内容と前提

ここでは、1台の Linux機 で稼働している Apache に対して PHP5.3.2 と PHP4.4.9 の2種類をインストールすることを想定しています。PHP は Apache 上で Apacheモジュール または CGIのプロセス として動作させることができます。 Apache モジュールとして複数の PHPバージョン を混在させることはできませんが、インストール自体は可能(設定でどちらか一方のみを稼働とする)なので、モジュール版 PHP5.3.2CGI版 PHP5.3.2モジュール版 PHP4.4.9CGI版 PHP4.4.9 を 1台の Linux機 へインストールしていきます。 Apache からの PHP 呼び出しについては別途説明します。

事前に各種 PHP のソースを取得しておく必要があります。複数バージョンのソース取得については「 PHPの過去バージョンを取得する方法 」で紹介してあります。ソースを取得した後は FTP等で インストールする Linux機の 任意の場所に配置し圧縮ファイルを展開しておきます。今回、PHP4.4.9 のソースは "/usr/local/src/php-4.4.9" に、 PHP5.3.2 のソースは "/usr/local/src/php-5.3.2" に配置したとして説明を進めていきます。モジュール版とCGI版のソースは共通です。インストール時にパラメータを指定し分けることでモジュール版またはCGI版としてインストールすることができます。

2.PHP 4.4.9 インストール

2−1.複数 PHP インストールのポイント

複数の PHP はインストール先を分けることで実現します。今後様々なバージョンの PHP をインストールしていくことも考えるとインストール先のディレクトリに PHPのバージョンを含めておくと分かりやすくなります。また、今回は同じバージョンでもモジュール版とCGI版の両方をインストールするので、バージョン同様にCGI版かどうかもディレクトリ名に含めることにしました。インストール先は --prefix というパラメータでカスタマイズできます。今回モジュール版は --prefix=/usr/local/lib/php-4.4.9 、CGI版は --prefix=/usr/local/lib/php-4.4.9-cgi と指定することにしました。

また、ディレクトリ名のみにバージョンや CGI版 とわかる情報をつけてもパスを通したりリンクを作成した場合どの PHP を呼び出しているかが分かりづらくなります。そこで今回は PHPファイル名 にもこれらが判別できる情報をつけることにしました。ファイル名は --program-suffix というパラメータで本来の名前(php)に続ける文字列を指定することができます。

今回モジュール版は --program-suffix=-4.4.9 、CGI版は --program-suffix=-4.4.9-cgi と指定することにしました。こうすることでインストールされるファイル名はそれぞれ php-4.4.9php-4.4.9-cgi とすることができます。

2−2.モジュール版 PHP 4.4.9 インストール

ここでは、 PHP4.4.9 のソースが "/usr/local/src/php-4.4.9" に展開済みであるとします。 まずは展開済みディレクトリへ移動します。

$ cd /usr/local/src/php-4.4.9

PHP を Apache2 の モジュールとしてインストールするには --with-apxs2 パラメータで Apacheapxs ディレクトリの場所を指定します。 ここでは apxs のディレクトリが "/usr/local/apache2/bin/apxs" だとします。インストールのポイントで示した インストール先とファイル名のパラメータも指定します。その他、例では指定していませんが --enable-mbstring や --enable-zend-multibyte 、 --with-mysql といったパラメータも必要に応じて指定します。

$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --prefix=/usr/local/lib/php-4.4.9 --program-suffix=-4.4.9

設定が成功したらコンパイルを行います。

$ make

コンパイルが成功したらインストールを行います。

$ su
Password:
# make install

インストールが成功したら PHP設定ファイル をインストールします。 PHP設定ファイルは PHPソース を展開したディレクトリ(ここでは "/usr/local/src/php-4.4.9" )に置かれています。PHP設定ファイルのテンプレートが2種類置いてあるのでどちらかをインストールします。 1つは "php.ini-recommended" で、実際の運用を想定したテンプレートです。 もう1つは "php.ini-dist" で開発を想定したテンプレートです。どちらかを "php.ini" という名前に変更してインストール先の lib ディレクトリへコピーします。今回は複数 PHP バージョンで動作確認をするためのテスト環境を想定しているので "php.ini-dist" を選択しました。

# cp /usr/local/src/php-4.4.9/php.ini-dist /usr/local/lib/php-4.4.9/lib/php.ini

以上で、 Apache2 モジュール版 PHP 4.4.9 のインストールは完了です。

2−3.CGI版 PHP 4.4.9 インストール

ここでは、 モジュール版のインストールと同様に PHP4.4.9 のソースが "/usr/local/src/php-4.4.9" に展開済みであるとします。 まずは展開済みディレクトリへ移動します。

$ cd /usr/local/src/php-4.4.9

モジュール版でインストールするに指定した --with-apxs2 パラメータを指定しなければ CGI版 としてインストールされます。 インストールのポイントで示した インストール先とファイル名のパラメータを指定するのは同様です。その他、例では指定していませんが --enable-mbstring や --enable-zend-multibyte 、 --with-mysql といったパラメータも必要に応じて指定します。

$ ./configure --prefix=/usr/local/lib/php-4.4.9-cgi --program-suffix=-4.4.9-cgi

設定が成功したらコンパイルを行います。

$ make

コンパイルが成功したらインストールを行います。

$ su
Password:
# make install

インストールが成功したら PHP設定ファイル をインストールします。 PHP設定ファイルのインストール方法はモジュール版と同様です。2種類ある "php.ini-recommended" か "php.ini-dist" を "php.ini" という名前に変更してインストール先の lib ディレクトリへコピーします。今回は複数 PHP バージョンで動作確認をするためのテスト環境を想定しているので "php.ini-dist" を選択しました。

# cp /usr/local/src/php-4.4.9/php.ini-dist /usr/local/lib/php-4.4.9-cgi/lib/php.ini

以上で、 CGI版 PHP 4.4.9 のインストールは完了です。

3.PHP 5.3.2 インストール

3−1.複数 PHP インストールのポイント

上述のPHP4.4.9 のインストールと同様、インストール先のディレクトリとファイル名に PHPのバージョンとCGI版かどうかが分かるように --prefix と --program-suffix を指定しました。今回モジュール版は --prefix=/usr/local/lib/php-5.3.2 --program-suffix=-5.3.2 、CGI版は --prefix=/usr/local/lib/php-5.3.2-cgi --program-suffix=-5.3.2 と指定することにしました。

PHP4.4.9 のインストール時と違い、PHP5.3.2 では --program-suffix は "-5.3.2-cgi" ではなく "-5.3.2" としています。 これは PHP 5.3.2 を CGI版でインストールすると "php-cgi" という名前になるため program-suffix に "cgi" を含めていしまうと "php-cgi-5.3.2-cgi" となってしまうためです。最終的にインストールされるファイル名はそれぞれ php-5.3.2php-cgi-5.3.2 となります。

3−2.モジュール版 PHP 5.3.2 インストール

ここでは、 PHP5.3.2 のソースが "/usr/local/src/php-5.3.2" に展開済みであるとします。 まずは展開済みディレクトリへ移動します。

$ cd /usr/local/src/php-5.3.2

PHP 4.4.9 のインストールと同様、 Apache2 の モジュールとしてインストールするには --with-apxs2 パラメータを指定します。 ここでは apxs のディレクトリが /usr/local/apache2/bin/apxs としています。インストールのポイントで示した インストール先とファイル名のパラメータも指定します。その他、例では指定していませんが --enable-mbstring や --enable-zend-multibyte 、 --with-mysql といったパラメータも必要に応じて指定します。

$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --prefix=/usr/local/lib/php-5.3.2 --program-suffix=-5.3.2

設定が成功したらコンパイルを行います。

$ make

コンパイルが成功したらインストールを行います。

$ su
Password:
# make install

インストールが成功したら PHP設定ファイル をインストールします。 PHP設定ファイルは PHPソース を展開したディレクトリ(ここでは "/usr/local/src/php-5.3.2" )に置かれています。PHP 4.4.9 の設定ファイルと同様にテンプレートが2種類置いてあるのですが PHP4.4.9 のテンプレートとは名前が異なります。 1つは "php.ini-production" で、実際の運用を想定したテンプレートです。 もう1つは "php.ini-development" で開発を想定したテンプレートです。どちらかを "php.ini" という名前に変更してインストール先の lib ディレクトリへコピーします。今回は複数 PHP バージョンで動作確認をするためのテスト環境を想定しているので "php.ini-development" を選択しました。

# cp /usr/local/src/php-5.3.2/php.ini-development /usr/local/lib/php-5.3.2/lib/php.ini

以上で、 Apache2 モジュール版 PHP5.3.2 のインストールは完了です。

3−3.CGI版 PHP 5.3.2 インストール

ここでは、 モジュール版のインストールと同様に PHP5.3.2 のソースが "/usr/local/src/php-5.3.2" に展開済みであるとします。 まずは展開済みディレクトリへ移動します。

$ cd /usr/local/src/php-5.3.2

モジュール版でインストールするに指定した --with-apxs2 パラメータを指定しなければ CGI版 としてインストールされます。 インストールのポイントで示した インストール先とファイル名のパラメータを指定するのは同様です。その他、例では指定していませんが --enable-mbstring や --enable-zend-multibyte 、 --with-mysql といったパラメータも必要に応じて指定します。

$ ./configure --prefix=/usr/local/lib/php-5.3.2-cgi --program-suffix=-5.3.2

設定が成功したらコンパイルを行います。

$ make

コンパイルが成功したらインストールを行います。

$ su
Password:
# make install

インストールが成功したら PHP設定ファイル をインストールします。 PHP設定ファイルのインストール方法はモジュール版と同様です。2種類ある "php.ini-production" か "php.ini-development" を "php.ini" という名前に変更してインストール先の lib ディレクトリへコピーします。今回は複数 PHP バージョンで動作確認をするためのテスト環境を想定しているので "php.ini-development" を選択しました。

# cp /usr/local/src/php-5.3.2/php.ini-development /usr/local/lib/php-5.3.2-cgi/lib/php.ini

以上で、 CGI版 PHP 5.3.2 のインストールは完了です。

これで今回想定している全ての PHP バージョン をインストールすることができました。今後別のバージョンをインストールしたい場合も同様の方法で増やしていくことができます。

Apacheに複数バージョンのPHPを混在させる
1
Apacheに複数バージョンのPHPを混在させるには Apacheに複数バージョンのPHPを混在させるにあたっての概要
2
PHPの過去バージョンを取得する方法 Apacheにインストールする複数バージョンのPHPをダウンロードする方法です。
3
Linuxへ複数バージョンのPHPをインストール Linux上のApache1台に複数バージョンのPHPをインストールする方法です。