php.netで「Download」→「Old archives」とリンクを辿ると、「Unsupported Historical Releases」というページが表示されます。
ふと、このページの一番下にある「3.0.x」が、最新(2023年12月25日時点)のUbuntu環境(Ubuntu 23.10(Mantic Minotaur))で動くのかが気になったので試してみました。
まずは、Ubuntu 23.10(Mantic Minotaur)のDockerコンテナを起動します。
$ docker pull ubuntu:mantic
$ docker container run \
--rm \
-p 127.0.0.1:8080:8080 \
-it ubuntu:mantic \
bash
PHPのインストールに必要なパッケージ群をインストールします。
# apt install -y build-essential curl
今回は「/usr/local/src」の配下でインストール作業を行うので、ディレクトリを移動します。
# cd /usr/local/src
「Unsupported Historical Releases」のページに「PHP 3.0.18 Source Code」と記載されているので、そのリンク先となっているファイルをダウンロードします。
※「http」で提供されいているので、「-k」オプションを付与する必要があります。
# curl -k -LO http://museum.php.net/php3/php-3.0.18.tar.gz
ファイルを展開します。
# tar zxf php-3.0.18.tar.gz
「php-3.0.18」のディレクトリへ移動します。
# cd php-3.0.18
configureのオプションは何もつけずにデフォルトで実行してみます。
./configure
コンパイルを実行します。
※途中で大量の「warning」メッセージが表示されますが、ひとまず無視します。
# make
インストールを実行します。
# make install
cp php /usr/local/bin
PHPのバイナリファイルが作成されていることを確認します。
# ls -l /usr/local/bin/php
-rwxr-xr-x 1 root root 1994784 Dec 25 04:44 /usr/local/bin/php
PHPのバージョンを確認すると「3.0.18」と表示されました。
# php -v
3.0.18
phpinfoの内容をHTMLファイルとして出力します。
# cd /tmp/
# php -i > phpinfo.html
先ほど作成した「phpinfo.html」をホストPCのブラウザからアクセスしたいのですが、PHP 3.0.18にはビルトインウェブサーバーの機能がありません。
なので、少々強引ではありますが、同じ環境にPHP8.xをインストールします。
# apt install -y php
PHP 8.2がインストールされました。
# php8.2 -v
PHP 8.2.10-2ubuntu1 (cli) (built: Sep 5 2023 14:37:47) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies
with Zend OPcache v8.2.10-2ubuntu1, Copyright (c), by Zend Technologies
先ほど「phpinfo.html」を作成したディレクトリへ移動します。
# cd /tmp/
ビルトインウェブサーバーを起動します。
# php8.2 -S 0.0.0.0:8080
ホストPCのブラウザで http://localhost:8080/phpinfo.html にアクセスすると、以下のような内容が表示されました。
ということで、PHP 3.0.18 の phpinfo の内容が無事に確認できたのですが、ここで一つ気になることを思い出しました。
「Unsupported Historical Releases」のページでPHP 3.0.18のソースファイルをダウンロードしましたが、 php-3.0.18.tar.gz の取得先のURLは museum.php.net というドメインでした。
この museum というサブドメインは見覚えがあります。
「Unsupported Historical Releases」のページの右側にあるメニューの中に「PHP Museum」というのがありますね。どうやらこのリンク先のURLが https://museum.php.net/ のようです。
museum.php.net のページを見てみると、「php1」が存在します。
PHP 3.xよりも更に古いバージョンがインストールできるのか試してみるのも面白そうですね。