Apache1.3 と php4.3.11 環境を構築

いつも土日は時間が足りない。本当はこの土日にやるべき事が山積みだったのだが。時間の使い方が悪くなって来ているように思う。サスペンスドラマなんか見るんじゃなかった。。。

先日 PHP5 環境を構築した関係で、PHP4 用に書かれたいくつかのプロダクトが試せない状態である。
XOOPS(あえてリンク先は日本版サイト)も PHP5に対応したと聞いているが、ほとんどのモジュールが PHP4 用に書かれているし、
oSCommerceZen Cart なんかも PHP 4 用のプロダクトである。PHP 5で本当に動かないのかどうか試した事は無いが、多分動かないだろう。

ということで、PHP4 環境も作る事にした。但し、Apache と PHP は ports で既に別のバージョン(Apache 2.0.54, PHP 5.0.4)をインストールしている為、ports は使えない(はずである)。なので、ports を使わずにインストールした。

また、インストール済みの Apache がポート番号 80 を使用しているので、別のポート番号(11080)を指定する必要がある。

まあ、そんなこんなでこの土日に出来た事は、Apache1.3, PHP4 のインストールと XOOPS日本版のインストールだけであった。

(注意: 以下、普通にインストール手順しか書いていない。面白い話を期待している人は読まないように)

Apache HTTP Server の 1.3 系と、PHP の 4系の最新版をそれぞれダウンロードし、/usr/local/src に展開する。

cd /usr/local/src
tar xvzf apache_1.3.33.tar.gz
tar xvzf php-4.3.11.tar.gz

Apache のインストール

configure スクリプトを実行する。インストール先を /usr/local/apache としたいので、prefix パラメータに指定する。

cd apache_1.3.33
./configure --prefix=/usr/local/apache --enable-module=so

configure スクリプトが生成した Makefile を使って、make コマンドでインストールする。

make install

PHPのインストール

PHP も configure スクリプトを使って、Makefile を生成する。XOOPS は MySQL データベースを使用するので、MySQL 拡張を使用する事を --with-mysql パラメータで指定する。
さらに、Apache をインストールした時に一緒にインストールされた、apxs コマンドのパスを指定する。PHPのコマンドライン版や各ライブラリ等をインストールするディレクトリとして、/usr/local/php4 を指定する。最後の with-config-file-path は php の設定ファイルである php.ini のパスを置くディレクトリである。(--enable-mbstring はマルチバイトを扱うオプション、--with-ldap は LDAPクライアントとして利用するためのオプションである。)

cd ../php-4.3.11
./configure --with-mysql --enable-mbstring --with-ldap --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/php4 --with-config-file-path=/usr/local/php4/etc/

apache のインストール時と同様に、configure スクリプトが生成した Makefile を使ってインストールする。

make install

Apache の設定

/usr/local/apache/conf/httpd.conf ファイルを修正する。先程も書いたように、ポート番号 11080で動かす必要がある。そのために、以下のように設定ファイルに記述した。

# Port 80
Port 11080

Port 80 という行があるはずなので、その行をコメントアウトして新たに 11080 の行を指定している。

ついでに、実行ユーザ、グループの変更とサーバ管理者のメールアドレスも変更しておく。

# User nobody
# Group nobody
User www
Group www

# ServerAdmin satoshi@zakk.randynetwork.com
ServerAdmin webmaster@randynetwork.com

PHPスクリプトを実行するためには以下の記述も必要である。一行目はインストール時に自動的に追加される。

LoadModule php4_module        libexec/libphp4.so
AddType application/x-httpd-php .php .phtml

phpinfo で確認

以下のスクリプトを /usr/local/apache/htdocs/ に置いて、ブラウザから実行してみる。

<?php
  phpinfo
();
?>

それっぽい画面が表示されれば、インストールは完了だ。

Re: Apache1.3 と php4.3.11 環境を構築

mbstring を有効にしていなかったので修正しました。

Re: Apache1.3 と php4.3.11 環境を構築

php.ini のパスを指定していなかったので、/usr/local/php4/lib/php.ini になっていました。
これではちょっと気持ち悪いので、--with-config-file-path オプションを使って、/usr/local/php4/etc/php.ini に変更しました。

Re: Apache1.3 と php4.3.11 環境を構築

大変参考になりました。ありがとうございます。

お礼方々1点だけ…
PHPのコンパイルオプションですが、

--with-config-file-path=/usr/local/php4/etc/php.ini

では /usr/local/php4/etc/php.ini という「ディレクトリ」を探しに行きます。
--with-config-file-path=/usr/local/php4/etc
としておかないと、php.ini は読み込まれないのではないかと思います。

Re: Apache1.3 と php4.3.11 環境を構築

Reo 様。コメントありがとうございます。
PHP4ではありませんが、リリースされたばかりの PHP5.3.0 で試してみました。
ご指摘の通り、コンフィグファイルは読み込まれませんね。

phpinfo()
PHP Version => 5.3.0

System => Linux debian 2.6.26-2-amd64 #1 SMP Sun Jun 21 04:47:08 UTC 2009 x86_64
Build Date => Jul 2 2009 10:42:23
Configure Command => './configure' '--with-mysql' '--enable-mbstring' '--prefix=/usr/local/php4' '--with-config-file-path=/usr/local/php4/etc/php.ini'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /usr/local/php4/etc/php.ini
Loaded Configuration File => (none)

かなり古いエントリ(汗)だったのですが、修正しておきます。
教えてくださいまして有難うございました。

新しいコメントの投稿

このフィールドの内容は非公開にされ、公表されることはありません。
  • HTMLタグは使用できません
  • 行と段落は自動的に折り返されます。

書式オプションに関するより詳しい情報...