AWSにwordpressをインストールしてみました。
ちなみに私はUdemyの「AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得」を教材として使わせて頂いております。これ、すっごく判りやすいです。もし参考するなら、費用が掛かりますが、断然そちらの動画を見ることをお勧めします。
プロローグ
以下、前回の続きです。ここでは、EC2にapacheがインストール済み、RDSでmysqlを構築済み、オリジナルドメインをRoute53に登録済み、として話を進めます。
php7.2のインストール
前回EC2を構築した際、AMI(Amazonマシンイメージ)の中からクイックスタートにある「Amazon Linux 2 AMI」を選択しました。この「Amazon Linux 2 AMI」は、どうやらデフォルトでphp5.4がインストールしているらしいです。という事で、まずはyumで確認します。
$yum list | grep php php.x86_64 5.4.16-46.amzn2.0.2 amzn2-core php-bcmath.x86_64 5.4.16-46.amzn2.0.2 amzn2-core php-cli.x86_64 5.4.16-46.amzn2.0.2 amzn2-core (~省略~)
しかしWordPress 5.2 から、PHP の最低必須バージョンがPHP 5.6.20以降となりました。そこで今回はPHP7系を入れる方針とします。先の動画や「(公式マニュアル)チュートリアル: Amazon Linux 2 に LAMP ウェブサーバーをインストール」を参考に、今回はphp7.2をインストールする事にしました。
まずyumでソフトウェアの更新を実行します。
$ sudo yum update -y
次にphp7.2 Amazon Linux Extras リポジトリをインストールします。
$ sudo amazon-linux-extras install -y php7.2
※補足:なお「Amazon Linux Extras リポジトリ」は上記の公式マニュアルにも登場しますが、今回はローカル(EC2)にMariaDBをインストールせず、既にRDSにMySQLがインストール済みのDBを使用するので、ここではphp7.2のみ実行しています。
$ cat /etc/system-release
Amazon Linux AMI で LAMP ウェブサーバーを設定するには、「チュートリアル: Amazon Linux AMI を使用して LAMP ウェブサーバーをインストールする」を参照してください。
これでphp7.2系がインストールされました。yum listで確認します。
[ec2-user@ip-10-0-10-10 ~]$ yum list | grep php php-cli.x86_64 7.2.34-1.amzn2 @amzn2extra-php7.2 php-common.x86_64 7.2.34-1.amzn2 @amzn2extra-php7.2 (~省略~)
多言語環境のmbstringライブラリもインストールされているか確認します。
$ yum list | grep mbstring php-mbstring.x86_64 7.2.34-1.amzn2 amzn2extra-php7.2
apacheを再起動します。
$ sudo systemctl restart httpd
phpinfoを作成しドキュメントルートに配置します。権限変更も忘れずに。
$ echo "<?php phpinfo(); ?>" > info.php $ sudo cp -p info.php /var/www/html/ $ sudo chown apache:apache /var/www/html/info.php
無事php7.2が入った様です。危ないのでinfo.phpは削除しておきます。
$ sudo rm -i /var/www/html/info.php rm: remove regular file ‘/var/www/html/info.php’? y
wordpres用のDBインストール
ここでは既にプライベートサブネットに存在するRDSにmysqlがインストール済みである事を前提にしております。
まずTermから踏み台になるEC2にログインし、mysqlコマンドよりエンドポイント情報を利用してRDSのデータベースへログインします。
$ mysql -h (エンドポイント) -u (RDS構築時に指定したユーザ名) -p Enter password:(パスワード)
wordpress用のデータベースを作成します。
CREATE DATABASE aws_wp_database_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Query OK, 1 row affected, 2 warnings (0.03 sec)
wordpress用のユーザーを作成します。
MySQL [(none)]> CREATE USER 'aws_wp_user_name' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.02 sec)
先のデータベースを操作できる様にユーザに権限を付与します。
MySQL [(none)]> GRANT ALL ON aws_wp_database_name.* TO 'aws_wp_user_name'@'%'; Query OK, 0 rows affected (0.01 sec)
設定を反映させます。
MySQL [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
最後に確認します。いったんexitし今回作ったユーザーでログインしなおします。
>$ mysql -h (エンドポイント) -u aws_wp_user_name -p Enter password:(パスワード)
今回作ったデータベースに接続します。
MySQL [(none)]> USE aws_wp_database_name; Database changed
ユーザ名とデータベース名を確認します。
MySQL [aws_wp_database_name]> SELECT CURRENT_USER(); +--------------------+ | CURRENT_USER() | +--------------------+ | aws_wp_user_name@% | +--------------------+ 1 row in set (0.00 sec) MySQL [aws_wp_database_name]> SELECT DATABASE(); +----------------------+ | DATABASE() | +----------------------+ | aws_wp_database_name | +----------------------+ 1 row in set (0.00 sec)
以上でwordpress用のデータベース作成は完了です。
wordpressのインストール
最新バージョンをダウンロードします。
$ wget https://wordpress.org/latest.tar.gz
パッケージを解凍します。
$ tar -xzf latest.tar.gz
wodrpressというディレクトリが作成されたか確認します。
$ ls -1 latest.tar.gz wordpress
ドキュメントルートにディレクトリ毎コピーします。
$ sudo cp -rp wordpress/ /var/www/html/
所有者とグループを変更します。
$ sudo chown apache:apache -R /var/www/html/
ブラウザでアクセスします(URL: http://取得したドメインorパブリックIP/wordpress/ )。すると言語を聞かれるので「日本語」を選択します。
さきほど作成した「データベース名」及び「ユーザ名」「パスワード」を入力します。ホスト名にはRDSの「エンドポイント」を入力します。
必要項目を入力し「WordPressをインストール」ボタンを押します。なお「メールアドレス」はパスワードを忘れた場合、リセットする際に送信するアドレスです。ですので正しく入力しましょう。また今回は学習用なので「検索エンジンがサイトをインデックスしないようにする」にはチェックをつけておく方が無難です。