CakePHP2環境をAmazon Linux2023につくる

こんにちは、ウシロゴウチです。
今回とあるシステムの移行を行ったので、その時に実施した内容を社内用の作業メモもかねてブログの記事としました。

記事に関するキーワード
CakePHP2、Amazon Linux2023

案件の背景

Amazon Linux上にCakePHP2でつくられた古いシステムがあり、Amazon Linuxから別のOSへの移行する必要が生じました。本来的にはCakePHP2もアップデートして、できる限りのアップデートも行い移行するのが筋だと思うのですが、諸々の事情があり、フレームワークはCakePHP2のままで、可能な限り他のミドルウェア、OSなどをアップデートし移行することになりました。

移行のため要件

CakePHP2のインストール要件をみると
https://book.cakephp.org/2/ja/installation.html
CakePHP2はMariaDBやPHP8系統に対応していませんので、デフォルトがMariaDBやPHP8のAmazon Linux2023ではなく、Amazon Linux2を移行先にしようと思ったのですが、Amazon Linux2のサポート期限が2025年6月30日だったこともあり、OSはAmazon Linux2023にしました。

実施作業

Amazon Linux2023にした場合、最初の関門は、デフォルトでPHP8系統ということです。

いくつかネットの記事を参考にしたところPHP8系統だとCakePHP2はどうやら動かないということがわかりましたので、PHP7系統のものをAmazon Linux2023に導入する方法がないかと探していたところ、下記の記事でPHP8系統に対応した、CakePHP2があるということなのでこちらを採用することにしました。

CakePHP2、4混在環境のPHP8.1バージョンアップ

https://github.com/kamilwylegala/cakephp2-php8

PHPの問題が解決し次の難関がDBになります。
MariaDB の代わりにAmazon Linux 2023にMySQLを入れる方法を探していたところ、以下の記事を見つけることができました。

Amazon Linux 2023にMysql5.7のClientをインストールする

こちらの方法で無事に、MySQLを入れることができたので、CakePHP2を動かす環境ができました。

上記以外についてはAmazon Linux 2023のパッケージ管理コマンドのdnfでApacheやPHPやPHPのモジュールをインストールしています。

いくつかの問題が解決しこのあと、Amazon Linuxの環境から、Amazon Linux 2023の環境へのコードの移行を行いましたが、基本的にapp配下のControllerやConfigからModelなどをそのまま移行し動作することを確認できました。
(今回我々が移行する古いシステムでしか試していないので、すべてのCakePHP2のアプリが動くは不明です)

上記の作業を実施して無事に動く環境ができてよかったです。(とはいえCakePHPのアップデートもそのうち実施しないといけませんが)

番外編

CakePHP2以外にも、本システムではファイル同期システムも使用しており、そちらの導入手順もあわせて書いておきます。
ファイル同期システムですが、手法については"lsyncd+rsync"になります。
ただしlsyncdが、Amazon Linux 2023では、標準状態(標準のパッケージ)に含まれておらず、導入方法を調べていたところ以下のような方法がみつかりました。

 Amazon Linux 2023へEPEL・RPM Fusionレポジトリを追加する

こちらの、Fedora 36レポジトリ導入を行い、

sudo dnf --enablerepo=fedora install lsyncd

を行い、無事にlsyncdの導入ができました。

次にrsyncですが、こちらの記事にあるように、
[AWS] lsyncd+rsyncでの複数サーバ同期の設定 (リアルタイムミラーリング)

xintedを使いデーモン化しようとしたところ、こちらもAmazon Linux2023にはありませんでした。
Amazon Linux 2 には含まれるが Amazon Linux 2023 には含まれないパッケージ

何か代わりになるものを探していたところ、rsync-daemonというものがあることがわかり、Amazon Linux 2023にも導入できるか試したところ問題なく導入できました。
Rsync : ファイル/ディレクトリの同期

上記の手段を用いることでAmazon LinuxからAmazon Linux2023への移行ができましたが、何かしらの参考になれば幸いです。

ウシロゴウチ

テックリード/プロジェクトマネージャー

松岡修造さんの日めくりカレンダーを3つ持ってます

お仕事のご相談、採用についてなど、お気軽にお問い合わせください。