Amazon Linux は2020/12/31 でサポートが終了してしまうため、
後継のOS であるAmazon Linux 2 への移行が必要になりました。
単純にOS アップデートできないようだったので、
新たにAmazon Linux 2 のインスタンスを作ってミドルウェアを入れ直しました。
後々同じことをやる方のググる手間を省ければと思い、まとめました。
「とりあえずEC2でPHPを動かしたいぞ!!!」というあなたのお役に立てれば幸いです
前提
■ 先にVPCやサブネットの用意を終わらせておくとスムーズです。
(ECインスタンス作成時に紐付けられるため)
もしよろしければ、以下の記事を参考になさってみてください!
・VPC作成 〜 パブリック・プライベートサブネットを作るまでの手順①
・VPC作成 〜 パブリック・プライベートサブネットを作るまでの手順②
■ CloudFormation を使った構築手順については今回触れません。
ざっくりの流れ
- EC2 インスタンスを作成
- タイムゾーンを日本に設定する
- 言語を日本語に設定する
- ホスト名を設定する ①
- ホスト名を設定する ②
- LAMP環境をインストールする
-
mb
モジュールをインストールする -
php-xml
モジュールをインストールする -
php.ini
を設定する
1. EC2 インスタンスを作成
▼ 参考:
AWSコンソールからEC2インスタンスを作成する手順
LAMP環境をインストールする際、EC2インスタンスにssh接続する必要があります。
EC2インスタンス作成時には既存のキーペアの選択
or 新しいキーペアの作成
を選ぶようにしてください。
▼ EC2インスタンスにssh接続するコマンド:
ssh -i [キーペアのパス] ec2-user@[パブリック IPv4 アドレス]
2. タイムゾーンを日本に設定する
sudo cp /usr/share/zoneinfo/Japan /etc/localtime
sudo vi /etc/sysconfig/clock
#ZONE="UTC"
ZONE="Asia/Tokyo"
UTC=true
3. 言語を日本語に設定する
sudo vi /etc/sysconfig/i18n
LANG=ja_JP.UTF-8
4. ホスト名を設定する ①
sudo hostnamectl set-hostname <ホスト名>
▼ 参考:
Amazon Linux インスタンスのホスト名を変更する - Amazon Elastic Compute Cloud
デフォルトのままだとわかりづらいため、わかりやすいホスト名に変更するのがおすすめです。
5. ホスト名を設定する ② ※ 不要な場合は飛ばしてOK
sudo vi /etc/cloud/cloud.cfg
末尾にpreserve_hostname: true
を追記する
▼ 参考:
Amazon Linux 2でカスタムAMIからの起動時にホスト名を固定する方法 | Developers.IO
カスタムAMI を取得 → カスタムAMI から新しいインスタンスを起動してみたらホスト名の設定が無効になっていたので、有効にし続けるための設定です。
6. LAMP環境をインストールする
▼ 参考:
チュートリアル: Amazon Linux 2 に LAMP ウェブサーバーをインストールする - Amazon Elastic Compute Cloud
7. mb
モジュールをインストールする
▼ 参考:
Amazon Linuxでphpでmbstringを使う - Qiita
PHPにはマルチバイト文字列を扱うための関数がいろいろあります。(例:mb_substr
)
mb
モジュールをインストールしておかないと、PHPを実行した際にFatal error
が出てしまいます。
8. php-xml
モジュールをインストールする
sudo yum install --enablerepo=remi,remi-php70 php-xml
sudo systemctl restart httpd
問題なくインストールされていることの確認は以下のコマンドでできます。
[ec2-user@XXXXXX ~]$ yum list installed | grep php-xml
php-xml.x86_64 7.2.34-1.amzn2 @amzn2extra-php7.2
[ec2-user@XXXXXX ~]$
php-xml
モジュールをインストールしていなかったために、PHPのエラー Fatal error: Class 'DOMDocument' not found
が出てしまいました
9. php.ini
を設定する
▼ 参考:
【PHP】PHPをインストールしたらやっておきたい設定 - Qiita
初期状態の/etc/php.ini
をコピーしてバックアップを取っておいてから設定を変更するようにすれば、何かあったときに戻せるので安心です。
上記の記事で「セキュリティに関する設定」として記載されているsession.hash_function
などはPHP 7.1.0
から削除されているので設定不要です。