🉑

Amazon Linux 2023 にWordPress をインストールする手順

2024/06/28に公開

1. パッケージの更新

システムのパッケージを最新に更新します。

sudo dnf update -y

-y: すべてのプロンプトに自動的に「はい」と応答します。

2. 必要なツールのインストール

必要なツールをインストールします。

sudo dnf install -y wget vim

wget: ウェブからファイルをダウンロードするためのツール
vim: テキストエディタ

3. NGINX のインストール

NGINX をインストールします。

sudo dnf install -y nginx

4. NGINX の起動と自動起動設定

NGINX を起動し、自動起動を設定します。

sudo systemctl start nginx
sudo systemctl enable nginx

start: サービスを即時に起動します。
enable: システム起動時に自動的にサービスを開始するように設定します。

5. 最新の PHP のインストール

PHP と必要な拡張モジュールをインストールします。

sudo dnf install -y php-fpm php-cli php-mysqlnd php-json php-opcache php-xml php-mbstring php-gd

php-fpm: PHP FastCGI Process Manager
php-cli: PHP コマンドラインインターフェース
php-mysqlnd: MySQL Native Driver
php-json: JSON サポート
php-opcache: OPcache 拡張
php-xml: XML パーサーと DOM サポート
php-mbstring: マルチバイト文字列サポート
php-gd: GD グラフィックスライブラリ

6. MySQL リポジトリのダウンロードとインストール

MySQL のリポジトリをダウンロードしてインストールします。

sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

7. MySQL のインストール

MySQL サーバーをインストールします。

sudo dnf install -y mysql-community-server

8. MySQL の起動と自動起動設定

MySQL を起動し、自動起動を設定します。

sudo systemctl start mysqld
sudo systemctl enable mysqld

9. MySQL の一時パスワードの取得

MySQL のログから一時パスワードを取得します。

sudo grep 'temporary password' /var/log/mysqld.log

10. MySQL の初期設定

MySQL にログインし、初期設定を行います。以下のコマンドを実行します。NewPassword123!を希望する強力なパスワードに置き換えてください。

sudo mysql -u root -p<<EOF
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
EOF

ALTER USER: root ユーザーのパスワードを変更します。
DELETE FROM mysql.user: 匿名ユーザーとリモートroot ユーザーを削除します。
DROP DATABASE: テストデータベースを削除します。
FLUSH PRIVILEGES: 権限テーブルをリロードします。

11. WordPress 用データベースとユーザーの作成

以下のコマンドを実行して、WordPress 用のデータベースとユーザーを作成します。your_password を希望するパスワードに置き換えてください。

sudo mysql -u root -p<<EOF
CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EOF

CREATE DATABASE: WordPress 用のデータベースを作成します。
CREATE USER: WordPress 用のユーザーを作成します。
GRANT ALL PRIVILEGES: 作成したユーザーにデータベースの全権限を付与します。

12. WordPress のダウンロードと配置

WordPress をダウンロードして配置します。

cd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz
sudo chown -R nginx:nginx /var/www/html
sudo chmod -R 755 /var/www/html

wget: WordPress の最新バージョンをダウンロードします。
tar -xzf: ダウンロードしたファイルを展開します。
chown: ファイルの所有者を nginx に変更します。
chmod: ファイルのパーミッションを設定します。

13. NGINX の設定ファイルを編集

NGINX の設定ファイルを作成して編集します。

sudo vi /etc/nginx/conf.d/wordpress.conf

以下の内容を貼り付けます。your_domain_or_IP を実際のドメインまたは IP アドレスに置き換えてください。

server {
    listen 80;
    server_name your_domain_or_IP;
    root /var/www/html;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
}

14. NGINX と PHP-FPM の再起動

NGINX と PHP-FPM を再起動します。

sudo systemctl restart nginx
sudo systemctl restart php-fpm

15. NGINX と PHP-FPM の自動起動設定

NGINX と PHP-FPM の自動起動を設定します。

sudo systemctl enable nginx
sudo systemctl enable php-fpm

16. wp-config.php ファイルの作成

wp-config.php ファイルを作成し、設定を編集します。

cd /var/www/html
sudo cp wp-config-sample.php wp-config.php
sudo vi wp-config.php

以下の設定を適切に変更します。

/** データベース名 */
define('DB_NAME', 'wordpress');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'wpuser');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'your_password');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

/** ファイルシステムの方法 - FTP を使用しない場合は 'direct' を設定 */
define('FS_METHOD', 'direct');

認証キーとソルトを生成し、wp-config.php に追加するには、以下のコマンドを実行します:

curl -s https://api.wordpress.org/secret-key/1.1/salt/ >> /var/www/html/wp-config.php

このコマンドは、WordPress.org の API を使用して安全な乱数を生成し、直接 wp-config.php ファイルに追加します。

17. セキュリティグループの設定

EC2 インスタンスのセキュリティグループで、HTTP (ポート 80) と HTTPS (ポート 443) の接続を許可してください。

18. PHP-FPM の設定最適化

PHP-FPM の設定を最適化します。

sudo vi /etc/php-fpm.d/www.conf

以下の行を見つけて、値を変更または追加してください:

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

変更後、PHP-FPM を再起動します:

sudo systemctl restart php-fpm

19. WordPress のインストール完了

ブラウザで EC2 インスタンスのパブリック IP またはドメインにアクセスし、WordPress のインストールウィザードを実行して WordPress のセットアップを完了します。

20. 追加のセキュリティ対策(オプション)

  1. WordPress のセキュリティプラグインをインストールして設定することをお勧めします。
  2. SSL/TLS 証明書を設定し、HTTPS を有効にすることで、通信を暗号化できます。
  3. WordPress のアップデートを定期的に行い、最新のセキュリティパッチを適用してください。
  4. 強力なパスワードを使用し、定期的に変更してください。
  5. ファイアウォールを設定し、不要なポートへのアクセスを制限してください。

21. パフォーマンス最適化(オプション)

  1. WordPress のキャッシュプラグインを使用して、ページ生成時間を短縮します。
  2. 画像の最適化プラグインを使用して、画像ファイルのサイズを削減します。
  3. データベースの最適化を定期的に行い、不要なデータを削除します。
  4. PHP のオペコードキャッシュ(OPcache)を有効にして、PHP スクリプトの実行を高速化します。

以上で Amazon Linux 2023 への WordPress のインストールが完了します。この設定により、基本的な WordPress サイトが EC2 インスタンス上で動作するようになります。認証キーとソルトが自動生成され、セキュリティが強化されています。

Discussion