WordPressをAmazon Linux 2023×Nginx上で動かしてみます。
なるべくお金をかけずに、かつ、高速なWordPressを構築したいので、CPUはArm、WEBサーバはNginxを使っていきます
まずは具体的な構成を記載していきます!
構成
- EC2を使用
- インスタンスはt4g.mediumを使用
- t4gは、Arm ベースの AWS Graviton2 のインスタンスです
- T3 インスタンスよりも価格パフォーマンスが最大で 40% 高いようです
- インスタンスはt4g.mediumを使用
Amazon EC2 T4g インスタンス – Amazon Web Services
AWS Graviton2 プロセッサを搭載した T4g インスタンスは、Amazon EC2 のバースト可能な汎用ワークロードとしては最高のコストパフォーマンスを提供します。
- OS
- Amazon Linux 2023
- Webサーバ
- Nginxを使用
- Apacheより高速
- PHP
- バージョン:8.2.15
- WordPressを動かすのに必要なもの
- MySQL
- バージョン:8.0.37
- WordPressを動かすのに必要なもの
- Webサーバで動かすもの
- WordPress
では実際にEC2起動からWordPressインストールまでやっていきます!
EC2起動
- 以下の設定でEC2を起動します
- Amazon マシンイメージ (AMI)でAmazon Linux 2023を指定する
- アーキテクチャで64ビット(Arm)を指定する
- インスタンスタイプでt4g.mediumを指定する
- ネットワーク設定で「からの SSH トラフィックを許可」「インターネットからの HTTP トラフィックを許可」を指定する
- セキュリティを考慮して、アクセス元は絞った方がいい
- EC2へはEC2 Instance Connectで接続するため、キーペアはなしでOK
EC2の中に入る
- 諸々設定するため、以下の流れで起動したEC2の中に入ります
- AWSコンソールのEC2の一覧で、該当のEC2を選択して、接続を押下
- EC2 Instance Connectタブの接続を押下
- AWSコンソールのEC2の一覧で、該当のEC2を選択して、接続を押下
もろもろインストール
パッケージ最新化
- パッケージ最新化
sudo dnf update -y
Nginxインストール〜設定
- Nginxインストール
sudo dnf -y install nginx
- Nginx設定変更
sudo vi /etc/nginx/nginx.conf
server
の箇所を以下通り修正
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}
- Nginx起動
sudo systemctl start nginx
- Nginx自動起動をON
sudo systemctl enable nginx
- ブラウザでNginxが正常に動作していることを確認
- EC2に割り当てられているパブリックIPにhttpでアクセスする
- 「Welcome to nginx!」が出れば、Nginxが起動できているので問題なし
- EC2に割り当てられているパブリックIPにhttpでアクセスする
PHPインストール
- PHPをインストールする
sudo dnf install -y php-fpm php-mysqli php-json php php-devel
MySQLインストール〜設定
- MySQLをインストールする
sudo dnf -y localinstall https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
→これを実行しないと「Error: GPG check FAILED」エラーになる
sudo dnf install -y mysql-community-server mysql-community-client mysql-community-devel
- 起動
sudo systemctl enable mysqld.service
sudo systemctl start mysqld.service
- 初期パスワード確認
sudo less /var/log/mysqld.log
- MySQL接続
mysql -uroot -p
# パスワード更新
ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード';
# wordpress用のDBを作成
create database wordpress_db default character set utf8 collate utf8_general_ci;
WordPressインストール
- WordPressインストール
wget https://ja.wordpress.org/latest-ja.tar.gz
tar -zxvf latest-ja.tar.gz
rm latest-ja.tar.gz
sudo mv wordpress/* /usr/share/nginx/html/
sudo chmod -R 777 /usr/share/nginx/html #実際はもっと制限かけたほうがいいけど、今回はとりあえず動けばOKということで...
sudo systemctl start php-fpm.service
sudo systemctl restart nginx.service
動作確認
- 動作確認
- 以下のアドレスにアクセスして、WordPressの画面表示されればOK
http://{EC2のIPアドレス}/wp-login.php