概要
EC2にWordPressを構築して初期表示までやってみたいと思います。
EC2を作成
まずはEC2を作成していきます。
EC2へSSH接続する
作成したキーペアを.ssh
へ移動します。
% mv Downloads/aws-test-key.pem .ssh/
パーミッションを変更する。
% chmod 400 "aws-test-key.pem"
ここまできたらEC2にSSH接続してみる。
% ssh -i "aws-test-key.pem" ec2-user@インスタンスのパブリック IPv4 アドレス
, #_
~\_ ####_ Amazon Linux 2023
~~ \_#####\
~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
一応rootユーザーになっておきます。
$ sudo su -
パッケージをアップデート
まずパッケージを最新にしておきましょう
# dnf update -y
Apacheのインストール
# dnf install -y httpd
Complete!と出たら完了です。
起動します。
# systemctl start httpd
起動されたか確認します。
active (running)になっていたら起動成功です。
# systemctl status httpd
自動起動するようにしておきます。
# systemctl enable httpd
Webサーバは起動できたので、この時点でEC2のパブリックIPにアクセスすると初期ページが表示されるはずです。
MySQLをインストール
リポジトリをインストールします。
# dnf -y localinstall https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
次にパッケージをインストールしますが、デフォルトだと下記のエラーが出るはずです。
# dnf install mysql-community-server mysql-community-client mysql-community-devel
Error: GPG check FAILED
GPGキーをインポートします。
# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
これでもう一度クライアントをインストールします。
Complete!と表示されたら完了です。
# dnf install mysql-community-server mysql-community-client mysql-community-devel
Complete!
起動してみる。
# systemctl start mysqld
起動確認
active (running)になっていたら成功です。
# systemctl status mysqld
自動起動設定をします。
# systemctl enable mysqld
PHPのインストール
次に、PHPをインストールしていきます。
# dnf -y install php-fpm php-mysqli php-json php php-devel
インストールされたかどうか確認します。
# php -v
PHP 8.2.15 (cli) (built: Jan 16 2024 12:19:32) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.15, Copyright (c) Zend Technologies
with Zend OPcache v8.2.15, Copyright (c), by Zend Technologies
WordPressのインストール
wgetコマンドでWordPressをインストールしていきます。
# wget https://ja.wordpress.org/latest-ja.tar.gz
パッケージを展開します。
# tar -zxvf latest-ja.tar.gz
展開が終わったら元のファイルは不要なので削除します。
# rm latest-ja.tar.gz
Web公開用にドキュメントルートにWordPressのファイルを配置します。
# mv wordpress/* /var/www/html/
サーバを再起動します。
# systemctl restart httpd.service
ここまできたらEC2のパブリックIPにアクセスするとWordPressの初期画面が表示されます。
DBの各種設定
MySQLにログインします。
# mysql -u root -p
ここでパスワードが聞かれますが、MySQLの初期パスワードは/var/log/mysqld.log
で確認することができます。
# less /var/log/mysqld.log
lessコマンドで確認すると以下の様なログが確認できるはずです。
root@localhost:
以降のGrGapdplN0*m:
が初期パスワードです。
[Note] A temporary password is generated for root@localhost: GrGapdplN0*m:
ログインができたら、初期パスワードを変更する必要があります。
(パスワードの変更をしないとデータベース操作やクエリ実行ができないため)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード';
WordPress用のデータベースを作成します。
mysql> CREATE DATABASE 'wordpress';
WordPress用のユーザーとパスワードを作成します。
mysql> CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';
DBに対する完全な権限を付与します。
mysql> GRANT ALL PRIVILEGES ON `wordpress`.* TO "wordpress-user"@"localhost";
変更を適用
mysql> FLUSH PRIVILEGES;
WordPressの各種設定
先ほど作成したDBの接続情報をWordPressの設定ファイルに記述していきます。
WordPressの設定ファイルを配置します。
# cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php
wp-config.php
のDB設定の箇所を変更します。
# vi /var/www/html/wp-config.php
/** The name of the database for WordPress */
define( 'DB_NAME', 'データベース名' );
/** Database username */
define( 'DB_USER', 'ユーザー名' );
/** Database password */
define( 'DB_PASSWORD', 'パスワード' );
ブラウザ Cookie に暗号化レイヤーを提供するためにランダムな値を設定します。
下記のURLにアクセスして値を取得してください
https://api.wordpress.org/secret-key/1.1/salt/
define('AUTH_KEY', ' #U$$+[RXN8:b^-L 0(WU_+ c+WFkI~c]o]-bHw+)/Aj[wTwSiZ<Qb[mghEXcRh-');
define('SECURE_AUTH_KEY', 'Zsz._P=l/|y.Lq)XjlkwS1y5NJ76E6EJ.AV0pCKZZB,*~*r ?6OP$eJT@;+(ndLg');
define('LOGGED_IN_KEY', 'ju}qwre3V*+8f_zOWf?{LlGsQ]Ye@2Jh^,8x>)Y |;(^[Iw]Pi+LG#A4R?7N`YB3');
define('NONCE_KEY', 'P(g62HeZxEes|LnI^i=H,[XwK9I&[2s|:?0N}VJM%?;v2v]v+;+^9eXUahg@::Cj');
define('AUTH_SALT', 'C$DpB4Hj[JK:?{ql`sRVa:{:7yShy(9A@5wg+`JJVb1fk%_-Bx*M4(qc[Qg%JT!h');
define('SECURE_AUTH_SALT', 'd!uRu#}+q#{f$Z?Z9uFPG.${+S{n~1M&%@~gL>U>NV<zpD-@2-Es7Q1O-bp28EKv');
define('LOGGED_IN_SALT', ';j{00P*owZf)kVD+FVLn-~ >.|Y%Ug4#I^*LVd9QeZ^&XmK|e(76miC+&W&+^0P/');
define('NONCE_SALT', '-97r*V/cgxLmp?Zy4zUU4r99QQ_rGs2LTd%P;|_e1tS)8_B/,.6[=UK<J_y9?JWG');
これで初期画面から必要な項目を設定してインストールを完了させることでWordPressを使用することができるようになります。