ただメモができるだけのブラウザアプリ「TextArea」はこちらw

WordPressをAmazon Linux 2023×Nginxで動かしてみる

WordPressをAmazon Linux 2023×Nginx上で動かしてみます。

なるべくお金をかけずに、かつ、高速なWordPressを構築したいので、CPUはArm、WEBサーバはNginxを使っていきます

まずは具体的な構成を記載していきます!

構成

  • EC2を使用
    • インスタンスはt4g.mediumを使用
      • t4gは、Arm ベースの AWS Graviton2 のインスタンスです
      • T3 インスタンスよりも価格パフォーマンスが最大で 40% 高いようです
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タブの接続を押下

もろもろインストール

パッケージ最新化

  • パッケージ最新化
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が起動できているので問題なし

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

       

      スポンサーリンク
      AWSWordPress
      フォローする
      さゆフィクション