Cloud9でWordPress環境を構築 2


WordPressの学習&AWSに触れるのを目的として
AWS Cloud9でWordPress環境を構築するまでの備忘録。

ここまでやったこと

  • AWSアカウント登録
  • Cloud9環境立ち上げ
  • MySQLインストール

この記事の目次

  • MySQLセットアップ
    • 初期設定
    • データベース作成
  • サービス起動
    • 最新化
    • サービス起動
  • スナップショット作成
    • 作成手順
    • 復元手順

(スナップショットを作成するのは
この後のWordPressのセットアップが上手くいかないから……)

MySQLセットアップ

初期設定

セットアップ前にログからrootのパスワードを確認する。


$ sudo cat /var/log/mysqld.log | grep "A temporary password"
2021-01-16T09:30:18.257989Z 1 [Note] A temporary password is generated for root@localhost: XXXXXXXXX 

ログイン後、パスワードの変更が要求される。
デフォルトのパスワードポリシー:数字/大文字/小文字/特殊文字を各1つ以上使用、長さは8文字以上
https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html

$ mysql_secure_installation

# ログで確認したパスワード
Enter password for user root: 

The existing password for the user account root has expired. Please set a new password.

# パスワードの変更を要求される
New password: (新しいパスワード)

# rootのパスワードを変更するか?
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N

# 匿名ユーザを削除するか?
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y

# rootでのリモートログインを禁止するか?
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y

# テストデータベースを削除するか?
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y

# 今すぐ権限テーブルを読み込むか?
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

All done! 

文字コードをUTF-8に、
パスワードの有効期限は無期限に変更しておく。2行追加。

$ sudo vi /etc/my.cnf

[mysqld]
(省略)
character-set-server = utf8
default_password_lifetime = 0

# サービス再起動しておく
$ sudo service mysqld restart

データベース作成

rootでMySQLにログイン、WordPress用のデータベース&ユーザを作成する。


$ mysql -u root -p
Enter password: 

# WordPress用のデータベース作成
mysql> CREATE DATABASE データベース名;
Query OK, 1 row affected (0.01 sec)

# ユーザ作成
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ユーザ名'@'localhost' IDENTIFIED BY '作成ユーザのパスワード';

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> exit

サービス起動

最新化

MySQLよりに先に確認すべきだったかも。ただ、結果的には最新化不要。

# OS 結果:アップデート不要
$ sudo yum -y update
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
261 packages excluded due to repository priority protections
No packages marked for update

# Apache 結果:アップデート不要
$ sudo yum install -y httpd24
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                       | 3.7 kB  00:00:00     
261 packages excluded due to repository priority protections
No package httpd24 available.
Error: Nothing to do

# PHP 結果:アップデート不要
$ sudo yum install -y php56
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
261 packages excluded due to repository priority protections
No package php56 available.
Error: Nothing to do

サービス起動

Apache、MySQLのサービスを起動する。

# Apache起動 (起動済だったかも)
$ sudo service httpd start 
$ sudo service httpd status
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running)

# MySQL起動 (起動済だったかも)
$ sudo service mysqld start
$ sudo service mysqld status
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) 

スナップショット作成

作成手順

ここまでで一旦、EC2のスナップショットを作成しておく。

EC2 > Elastic Block Store からスナップショットを作成する。
Select resource type は Volume にする。
※ 1インスタンス、1ボリューム状態なのでどちらでも変わりなし

復元手順

復元手順は次の通り。(未実施)
1. スナップショットからボリュームを作成
2. インスタンスを停止
3. インスタンスから復元したいボリュームをデタッチ
4. アタッチするインスタンスのルートデバイスを確認
5. 1で作成したボリュームをインスタンスにアタッチ
6. インスタンス起動

次、WordPressインストールなど。
Cloud9でWordPress環境を構築 3

前の記事へのリンク
Cloud9でWordPress環境を構築 1