初心者がWordPress環境構築してみた(冗長構成)


事前準備

前回からの続きです。

構成はWebサーバ1台、DBサーバ1台です。

環境

環境 IP
Webサーバ 10.0.1.1
DBサーバ 10.0.2.1

DBサーバの操作

  • DBサーバに接続する。

直接SSHで接続するか、Webサーバを経由して接続してください。

MySQL Yum RepositoryからMySQL5.7をインストールする。

  • Yumリポジトリの情報のインストール
$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  • MySQL8.0リポジトリを無効にし、MySQL5.7リポジトリを有効にする
$ sudo yum-config-manager --disable mysql80-community
$ sudo yum-config-manager --enable mysql57-community
#適用されているか確認
$ cat /etc/yum.repos.d/mysql-community.repo
  • MySQLのインストール・起動
$ sudo yum install -y mysql-community-server
$ sudo systemctl start mysqld
  • MySQLの初期パスワードの確認
$ sudo cat /var/log/mysqld.log | grep root@localhost
[Note] A temporary password is generated for root@localhost: 12桁の文字列
  • MySQLのパスワード変更
$ mysqladmin -uroot -p password
Enter password:古いパスワード
New password:新しいパスワード
Confirm new password:新しいパスワード
#Warnigがでても変更はできています
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

Passwordのポリシーについて

  • WordPress用のDB・ユーザーを作成する
$ mysql -uroot -p
Enter password:設定したパスワード
#WordPress用のユーザー作成
mysql> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'wordpressユーザーのパスワード';
#WordPress用のDB作成
mysql> CREATE DATABASE `wordpress`;
#DB権限を作成したユーザーに付与
mysql> GRANT ALL PRIVILEGES ON `wordpress`.* TO "wordpress"@"10.0.1.1";
#設定反映
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

※サブネットマスクはワイルドカード方式を用いることで指定できる。'10.0.1.%'

Webサーバの操作

  • WordPressのDBダンプを取得
$ sudo systemctl start mysqld
$ mysqldump -uroot -p wordpress | gzip > wordpress.dump.gz
Enter password:
#WebサーバのMySQLの停止
$ sudo systemctl stop mysqld
#ダンプをリストア
$ zcat wordpress.dump.gz | mysql -h 10.0.2.1 -uwordpress -p wordpress
  • WordPressの設定変更
# WordPessの設定を変更
$ sudo vim wordpress/wp-config.php
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'wordpress' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'wordpress' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'パスワード' );
/** MySQL のホスト名 */
define( 'DB_HOST', '10.0.2.1' );

# サービスリロード
$ sudo systemctl reload httpd