Amazon Linux 2023 にWordPress をインストールする手順
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. 追加のセキュリティ対策(オプション)
- WordPress のセキュリティプラグインをインストールして設定することをお勧めします。
- SSL/TLS 証明書を設定し、HTTPS を有効にすることで、通信を暗号化できます。
- WordPress のアップデートを定期的に行い、最新のセキュリティパッチを適用してください。
- 強力なパスワードを使用し、定期的に変更してください。
- ファイアウォールを設定し、不要なポートへのアクセスを制限してください。
21. パフォーマンス最適化(オプション)
- WordPress のキャッシュプラグインを使用して、ページ生成時間を短縮します。
- 画像の最適化プラグインを使用して、画像ファイルのサイズを削減します。
- データベースの最適化を定期的に行い、不要なデータを削除します。
- PHP のオペコードキャッシュ(OPcache)を有効にして、PHP スクリプトの実行を高速化します。
以上で Amazon Linux 2023 への WordPress のインストールが完了します。この設定により、基本的な WordPress サイトが EC2 インスタンス上で動作するようになります。認証キーとソルトが自動生成され、セキュリティが強化されています。
Discussion