LoginSignup
4
1

More than 3 years have passed since last update.

EC2 (Amazon Linux 2 ) にPHP7.2 をインストールし、php.ini を設定するまでのまとめ

Last updated at Posted at 2020-12-23

Amazon Linux は2020/12/31 でサポートが終了してしまうため、
後継のOS であるAmazon Linux 2 への移行が必要になりました。

単純にOS アップデートできないようだったので、
新たにAmazon Linux 2 のインスタンスを作ってミドルウェアを入れ直しました。

後々同じことをやる方のググる手間を省ければと思い、まとめました。
「とりあえずEC2でPHPを動かしたいぞ!!!」というあなたのお役に立てれば幸いです:pray:

前提

■ 先にVPCやサブネットの用意を終わらせておくとスムーズです。
  (ECインスタンス作成時に紐付けられるため)

  もしよろしければ、以下の記事を参考になさってみてください!
  ・VPC作成 〜 パブリック・プライベートサブネットを作るまでの手順①
  ・VPC作成 〜 パブリック・プライベートサブネットを作るまでの手順②

■ CloudFormation を使った構築手順については今回触れません。

ざっくりの流れ

  1. EC2 インスタンスを作成
  2. タイムゾーンを日本に設定する
  3. 言語を日本語に設定する
  4. ホスト名を設定する ①
  5. ホスト名を設定する ②
  6. LAMP環境をインストールする
  7. mbモジュールをインストールする
  8. php-xmlモジュールをインストールする
  9. 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
/etc/sysconfig/clock
#ZONE="UTC"
ZONE="Asia/Tokyo"
UTC=true

3. 言語を日本語に設定する

sudo vi /etc/sysconfig/i18n
/etc/sysconfig/i18n
LANG=ja_JP.UTF-8

4. ホスト名を設定する ①

Screenshot 2020-12-23 17.44.53.png

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 が出てしまいました:japanese_goblin:

9. php.ini を設定する

▼ 参考:
 【PHP】PHPをインストールしたらやっておきたい設定 - Qiita

初期状態の/etc/php.ini をコピーしてバックアップを取っておいてから設定を変更するようにすれば、何かあったときに戻せるので安心です。

上記の記事で「セキュリティに関する設定」として記載されているsession.hash_function などはPHP 7.1.0 から削除されているので設定不要です。

参考

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1