====== Amazon Linux 2 に Apache2.4 と PHP7.4 をインストール ======
===== Amazon Linux 2 の初期設定 =====
まずは [[サーバ:aws:サーバ構築手順:amazon_linux_2_の初期設定|Amazon Linux 2 の初期設定]] を行います。
===== Apache のインストール =====
# インストール済みの Apache の確認
$ yum list installed | grep httpd
# インストールされる Apache のパッケージを確認
$ yum info httpd
Version : 2.4.43
# 未インストールであれば、インストール
$ sudo yum install -y httpd
# ステータス確認
$ systemctl status httpd
# Apache 起動
$ sudo systemctl start httpd
# 自動起動設定
$ sudo systemctl enable httpd
# 自動起動になっているか確認
$ sudo systemctl is-enabled httpd
$ httpd -v
Server version: Apache/2.4.43 ()
# apache に ec2-user グループを追加
$ sudo gpasswd -a apache ec2-user
# グループが追加されたことを確認
$ sudo id apache
# 権限変更
$ sudo chown -R ec2-user:ec2-user /var/www/
# httpd のパーミッション変更
$ sudo chmod 755 /var/log/httpd
===== EPEL と Remi リポジトリのインストール =====
yum からインストールできる PHP のバージョンは 5.4 などと古いので、remi リポジトリから新しいバージョンの PHP をインストールできるようにする。
# PHP がインストール済みか確認
$ yum list installed | grep php
# 古いバージョンの PHP をインストールしてしまった場合はアンインストール
$ sudo yum remove php* -y
# インストールされる PHP のパッケージ確認
$ yum info php
Version : 5.4.16
# EPEL 有効化
$ sudo amazon-linux-extras enable epel
$ sudo yum clean metadata
$ sudo yum install -y epel-release
$ sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
===== PHP のインストール =====
# 7系でインストール可能なパッケージを確認
$ yum list | grep php7
# インストールされるパッケージ情報を確認
$ sudo yum info --enablerepo=remi,remi-php74 php74-php
# PHP7.4 をインストール
$ sudo yum install -y --enablerepo=remi,remi-php74 php74-php php74-php-common
# ↑このとき「php74」ではなく「php74-php」と指定すること
# 「php74」でインストールを行うとモジュールがインストールされず
# ブラウザでアクセスした際に、ソースがそのまま表示されてしまう
# その他、必要なパッケージをインストール
$ sudo yum install -y --enablerepo=remi,remi-php74 php74-php-devel php74-php-mbstring php74-php-pdo php74-php-gd php74-php-xml php74-php-mysqlnd php74-php-bcmath
# インストールされたパッケージを確認
$ sudo yum list installed | grep php
# モジュールがインストールされているのを確認
$ ls /etc/httpd/modules/ | grep php
libphp74.so
# バージョン確認
$ php -v
-bash: php: コマンドが見つかりません
# エラーがでたら、bin を確認
$ ls -l /usr/bin | grep php
# php で実行できるようにシンボリックリンクを貼る
$ sudo ln -s /usr/bin/php74 /usr/bin/php
# バージョンが表示されるようになったのを確認
$ php -v
# PHP ログディレクトリ
$ sudo mkdir /var/log/php
$ sudo chown apache:apache /var/log/php
# php.ini の場所を確認
$ php -r "echo phpinfo();" | grep "php.ini"
Loaded Configuration File => /etc/opt/remi/php74/php.ini
# php.ini をバックアップ
$ sudo cp /etc/opt/remi/php74/php.ini /etc/opt/remi/php74/php.ini.origin
# php.ini の設定を行う
$ sudoedit /etc/opt/remi/php74/php.ini
php.ini
mbstring.language = Japanese
mbstring.detect_order = auto
date.timezone = Asia/Tokyo
expose_php = Off
memory_limit = 512M
post_max_size = 128M
upload_max_filesize = 128M
# コマンドラインでパラメータ渡す場合は設定
register_argc_argv = On
error_reporting = E_ALL
error_log = /var/log/php/error.log
php.ini の編集が終わったら、Apache の再起動を行い、表示テストを行う。
# Apache を再起動
$ sudo apachectl graceful
# 表示テスト
$ vi /var/www/html/index.php
# テスト用に適当に記述
ブラウザにアクセスして、PHPが動作することを確認して終了。