目的
wordpress構築手順とは別のサーバ構成を用いた構築手順になります。
どういうことかというと、
wordpress構築手順では、一台のインスタンスにWEBサーバーとDBサーバーの役割をまとめました。
今回の記事では、VMインスタンスを2台用意する。
一つ目のVMインスタンスにWEBサーバーを、二つ目のVMインスタンスにDBサーバーの機能を持たせ、
分離した構成とします。
手順要旨
・WEBサーバーは、wordpress構築手順で作成したVMインスタンスを活用し、
手を加える。
・新たにインスタンスを一台作成し、DBサーバーの機能を持たせる。
・WEBサーバーからDBサーバーへの接続確認
構築手順
WEBサーバ用VMインスタンスに手を加える
Wordpress 設定ファイル修正
wp-config.phpを作成して編集
#cd /var/www/html/wordpress
#mv wp-config-sample.php wp-config.php
#vi wp-config.php
下記項目を変更 特に'DB_NAME'と'DB_USER'はDB用VMインスタンスで作成するDBと名称一致させること
define('DB_NAME', 'wordpressstep2');
define('DB_USER', 'wordpressstep2');
define('DB_PASSWORD', 'kamisama123');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
DB用に新規でVMインスタンス作成
インスタンス詳細設定内容は下記参照
[wordpress構築手順](https://itexpert.tips/ja/wordpress-ja/ubuntu-linux%e3%81%abnginx%e3%81%a7wordpress%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b/#3)のVMインスタンス作成を参照
MySQL インストール/データベース作成
#apt-get update
#apt-get install mysql-server mysql-client
#mysql --version
MySQLサービスコンソールにアクセス
#mysql -u root -p
データベース作成
下記情報で作成(wordpressは自由に変更してください)
•wordpressstep2という名前のデータベースを作成します。
•wordpressstep2という名前のMySQLユーザーアカウントを作成します。
•ワードプレスデータベースをワードプレスのユーザに完全に制御する。
↑をもとに下記コマンド実行
mysql> CREATE DATABASE wordpressstep2 CHARACTER SET UTF8 COLLATE UTF8_BIN;
mysql> CREATE USER 'wordpressstep2'@'%' IDENTIFIED BY 'kamisama123';
mysql> GRANT ALL PRIVILEGES ON wordpressstep2.* TO 'wordpressstep2'@'%';
mysql> FLUSH PRIVILEGES;
mysql> quit;
外部のホストからDB用VMインスタンスに接続するための確認事項
確認事項①
作業インスタンス:DB用VMインスタンス
下記コマンドを実行
mysql> select user, host from mysql.user;
実行結果
mysql> select user, host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| wordpressstep2 | % |
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
mysql> quit
ここで確認したいことは、user:wordpresstep2 host:% の行です。
これは、wordpresstep2ユーザならどのホストからでも接続できるということです。
WEBサーバから下記コマンドで接続してみる
# mysql -h DBサーバ用VMインスタンス外部IP -u wordpressstep2 -p
Enter password:
結果、接続できない。ガーン
確認事項②
DBサーバ用インスタンスの設定ファイルで他のアドレスからのアクセスを許可することができる。
MySQL サーバの設定ファイルより bind-address をコメントアウトして接続できる IP アドレスの制限をはずす。
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
下記行をコメントアウトする
bind-address = 127.0.0.1
下記行を追加
bind-address = 0.0.0.0
変更したら mysql サーバーを再起動しよう。
$ sudo service mysql restart
sudo service mysqld status
WEBサーバから下記コマンドで接続してみる
# mysql -h DBサーバ用VMインスタンス外部IP -u wordpressstep2 -p
結果だめ
確認事項③
DBサーバのfirewallにポート(3306)の追加し、ポート3306で他のホストからのアクセスを許可
#apt install firewalld
#firewall-cmd --list-ports
実行結果何も登録されていない
ポート(3306)の追加
#firewall-cmd --add-port=3306/tcp --zone=public
#firewall-cmd --list-ports
WEBサーバから下記コマンドで接続してみる
# mysql -h DBサーバ用VMインスタンス外部IP -u wordpressstep2 -p
Enter password:
結果、接続できない
確認事項④
db-wordpressでfirewallにmysqlを使えるように設定する。
状態チェック
firewall-cmd --list-services --zone=public --permanent
実行結果
dhcpv6-client ssh
mysqlが無いので、追加
# firewall-cmd --add-service=mysql --zone=public --permanent
実行結果
success
リロード
#firewall-cmd --reload
WEBサーバから下記コマンドで接続してみる
# mysql -h DBサーバ用VMインスタンス外部IP -u wordpressstep2 -p
Enter password:
結果、接続できたーー
Wordpressに接続
ブラウザを開き、下記URLに接続
http://(WEBサーバVMインスタンス外部IPアドレス)/wordpress