AWS

AmazonLinux2にPHP5.6をインストールする

AWS が提供している AmazonLinux ですが、ついに AmazonLinux2 を使わなければならない時期となりました。

【初期設定編】AWSでEC2(AmazonLinux2)のWebサーバ環境構築をする久し振りに EC2 を構築しようと思ったら、AmazonLinux の提供が 2020 年 12 月で終了していた。 2023 年...

OS やディストリビューションが違えば、それまで当たり前にできていたことができなくなる可能性もあるわけで、今回は PHP5.6 のインストールにハマりました。

仕事であればサポート期間が終了する前に PHP やフレームワークのバージョンアップを試みるのですが、今回は趣味のプロトタイプサイトだったので PHP5.6 のまま放置していました。
(フレームワークも Codeigniter2.x なので PHP7.x に対応していない)

そこで少し強引ではありますが、ここでは AmazonLinux2 で PHP5.6 を利用する方法を紹介します。

パッケージリポジトリの追加

AmazonLinux の時は、特にパッケージリポジトリを追加しなくても yum でインストールが可能だったのですが、PHP5.x 系のサポートがされていない今、流石に許してくれません。
(もう 5.x 系を使うなという話ですね)

AmazonLinuxでnginxを使ったWebサーバを構築するここまでで EC2 へアクセスするための最低限の設定が完了したので、いよいよ Web サーバを構築していきます。 今回は、無料枠期間を...

残念ながら AmazonLinux2 では、標準のリポジトリや amazon-linux-extras で PHP5.6 をインストールすることができないのです。

そこで remi リポジトリを追加して PHP5.6 のパッケージを利用することにします。

remi と依存関係にある epel のリポジトリも一緒に追加します。

PHP5.6のインストール

この状態で PHP5.6 をインストールしようとすると、依存関係のエラーがそこそこ出てきます。

先に、以下のパッケージをインストールしておきますか。

PHP5.6 をインストールする時は、amzn2-core のリポジトリを参照しないように「–disablerepo=amzn2-core」で除外するのがポイントです。

インストールされたパッケージを確認してみます。

php-fpmの設定

今回は、nginx を Web サーバとして使うので、php-fpm の設定を行います。

remi のパッケージでインストールした場合は、以下のディレクトリに www.conf が存在するのですよね。
(標準パッケージの時は /etc/php-fpm-5.6.d だった)

/opt/remi/php56/root/etc/php-fpm.d

では、設定ファイルを調整しましょう。

ちなみに、UNIX ドメインソケットのファイルですが、/var/run/php-fpm のディレクトリが存在しないので、ここに php-fpm.sock を配備したい場合はディレクトリを作成する必要があります。

conf のことを考えると、ソケットファイルも以下に作るのが適切だったのだろうか。

/opt/remi/php56/root/var/run/php-fpm

これで php-fpm のサービスを再起動すれば完了です。

まとめ

AmazonLinux2 に PHP5.6 をインストールする方法を紹介してきました。

・remi リポジトリを使う
・依存ライブラリを別途インストールする

ただし、PHP5.6.40 の最終バージョンは 2019 年 1 月 10 日がリリース日ということで、この記事を書いている時点で 2 年が経過しています。

今回の AmazonLinux2 のように、ディストリビューションでのサポートも終わっているので、早急にアプリを PHP7.3 以上にする必要がありますね。

ただ仕事と違って、趣味でプロトタイプ的に作ったサイトのメンテナンスは優先度が下がりますよね。

フレームワークのバージョンアップと合わせて行うよりも、スクラッチで作り直した方が早そうだったり・・・。