【Docker】PHP5.1.6 の環境を Xampp 1.5.4a で再現する

雑記

2020年現在、10年以上前から続いているレンタルサーバーは未だにPHP5.1.6だったりするし、CMSが依存していることもあり案件になりえることに驚いている。 (ITやWebをただの告知ツールと認識しているのであれば、10年などまったく代謝の動機に至らないかもしれないが。そもそも予算もないだろう。)

レガシーと呼ばれるPHPフレームワークですら動かない環境は、再現するのも一苦労。 当時のオープンソースファミリーだったApachePHPはEOLとなり一部リポジトリからダウンロードできなくなり、i386アーキテクチャは消え失せ、3年前ではビルドできた環境も今や公式リポジトリの消滅によりもはや闇の中を手探りするしかない。

ならば、当時の英知にあやかるしかない、ということで、「XAMPP for Linux」というあらかじめApacheMySQLなどがビルドされたパッケージを用いたDockerファイルを作成。

自動テストができないならせめてE2Eを・・・と悩める同志(?)の一助になれば。

DockerFile

# 32bit アーキテクチャじゃないと古いバージョンのxamppが動かない
FROM i386/centos:6

WORKDIR /usr/local/src

# TimeZoneの設定
RUN ln -sf /usr/share/zoneinfo/Japan /etc/localtime

# Xampp for Linux 1.5.4aのintall
RUN curl -L https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/1.5.4a/xampp-linux-1.5.4a.tar.gz/download>xampp-linux-1.5.4a.tar.gz \
    && tar xvfz xampp-linux-1.5.4a.tar.gz && mv lampp /opt/lampp

EXPOSE 80

ADD entrypoint.sh /app/entrypoint.sh

CMD [ "/app/entrypoint.sh" ]

entrypoint.sh

#!/bin/sh

# デーモン起動
/opt/lampp/lampp start

# 無限ループ
while true; do sleep 1000; done