Amazon Linux 2023 WEBサーバ構築 LAMP(apache/php/mysql)

AWS

こんにちは ひこにき です

AWS で WordPress のサーバーを構築することになりましたので GA となりました Amazon Linux 2023 で構築しました!

(※)AmazonLinux2のサポート(EOL)は2025年6月まで延長

その際のコマンド手順や気づいた点などまとめていきたいと思います

基本情報・前提知識

Amazon Linux 2023 は Fedoraベースである!

AL2023は Fedoraベースであり Fedora 34,35,36のコンポーネントが取り込まれていますが、Fedoraの特定のリリースバージョンと直接互換があるわけではないようです

Fedoraなので パッケージ管理なども yum ではなく dnf になります。ただ yum コマンドにはシムリンクで df を参照するように作成されていますので yum コマンドを実行することはできます

# ls -l /usr/bin/yum
lrwxrwxrwx. 1 root root 5 Jan 31 10:01 /usr/bin/yum -> dnf-3

amazon-linux-extras が入ってない! EPEL はサポート外

なんと amazon-linux-extrasが入ってないですか、、、(T_T)

まずは AL2023のディストリビューションに同梱されているパッケージ(rpm)を確認しつつ構築していくこととします

SELinux が 有効(permissive)

AL2023のデフォルトでは SELinux が permissive モードで有効となってます

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

システムログなどが /var/log/ 配下にない

AL2023では今までの rsyslog ではなく systemd-journald でログ管理されているため journalctl コマンドを使って確認する必要があります

例)journalctl 新しい順でログを参照する

# journalctl -r
Jun 30 08:54:49 ip-xx.ap-northeast-1.compute.internal systemd[1]: Finished refresh-policy-routes@enX0.service - Refresh policy routes for enX0.
Jun 30 08:54:49 ip-xx.ap-northeast-1.compute.internal systemd[1]: refresh-policy-routes@enX0.service: Deactivated successfully.
Jun 30 08:54:49 ip-xx.ap-northeast-1.compute.internal audit[1]: SERVICE_STOP pid=1 uid=0 auid=99999999 ses=99999999 subj=system_u:system_r:init_t:s0 msg='unit=refr>
Jun 30 08:54:49 ip-xx.ap-northeast-1.compute.internal audit[1]: SERVICE_START pid=1 uid=0 auid=99999999 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=ref>
Jun 30 08:54:49 ip-xx.ap-northeast-1.compute.internal ec2net[1047673]: No networkd reload needed
Jun 30 08:54:49 ip-xx.ap-northeast-1.compute.internal ec2net[1047670]: Called trap
・・・

AmazonLinux2023 環境でのLAMPインストール

Apache と PHPのインストール

### パッケージを最新に更新
$ sudo dnf update -y

### Apache と PHP をインストール
$ sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel

amazon-linux-extras では php8.2 がインストールできていたのですが、AL2023のディストリビューションには php8.1 しか入っていないようでした(2023年6月時点)

MySQLのインストール(もしくは MariaDB)

MariaDBでもよい場合は ディストリビューションに入っているので以下のコマンドで入れましょう

### MariaDBのインストール
$ sudo dnf install -y mariadb105-server

MySQLをインストールする場合は 公式のMySQL yumリポジトリを使用してインストールします

ここで一つ注意してほしいことがあります!

AL2023はFedoraベースと記載していましたが、Fedora36ベースのリポジトリからインストールしたらエラー頻発してハマりまくりました

正解は EL9系 のリポジトリを使ってインストールすることです。以下コマンドになります

###  EL9ベースのリポジトリをインストール
$ sudo dnf localinstall  https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

### mysqlServerをインストール
$sudo dnf install mysql-community-server

cronのインストール

cronがデフォルトでは入っていないのでインストールします

### cronのインストール
$sudo dnf install cronie
タイトルとURLをコピーしました