前回、Webサーバーの設定まで終了したので、WordPress をインストールして、このサイトのミラーサイトにしておこうと思っています
まずはWordPress を動作させるに、PHP と MySql をインストールしますが、以前とそれほど変わらないと思っています。
WordPress インストール
PHP 、MariaDB、WordPress とインストールしていきます
PHP7.3 のインストール
centOS8 のデフォルトは、PHP7.2なので、remiレポジトリを導入しPHP7,3をインストール
# dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm # dnf module disable php # dnf module install -y php:remi-7.3 # php -v
php-fpmの起動
# cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org # vi /etc/php-fpm.d/www.conf ・ ・ listen.owner = apache listen.group = apache listen.mode = 0666 # systemctl start php-fpm # systemctl enable php-fpm # systemctl is-enabled php-fpm enabled
PHP 基本的な設定
# cp -p /etc/php.ini /etc/php.ini.org # vi /etc/php.ini expose_php = Off post_max_size = 80M upload_max_filesize = 80M date.timezone = "Asia/Tokyo" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = UTF-8 mbstring.http_output = pass mbstring.encoding_translation = On mbstring.substitute_character = none $ php -r 'phpinfo();' | grep 'PHP Version' PHP Version => 7.3.15
MariaDB 10 のインストール
$ dnf list | grep maria
centOS8 になり、デフォルトで「MariaDB 10」が導入されているので、そのままインストール
# dnf install -y mariadb-server mariadb mariadb-devel 完了しました! # systemctl restart mariadb # systemctl status mariadb # systemctl enable mariadb
mysql_secure_installationの実行
管理者パスワードは、事前に決めてメモしておく
★管理者パスワード : hogehoge_passwd
このパスワードは、mysql コマンドで「root」ユーザーのパスワード となる
$ sudo mysql_secure_installation ・ Set root password? [Y/n] y <--------------- 管理者パスワード Remove anonymous users? [Y/n] y <--------- 匿名ユーザー削除 Disallow root login remotely? [Y/n] y <----- リモート管理者ログイン拒否 Remove test database and access to it? [Y/n] y <---- test データベース削除 Thanks for using MariaDB!
文字コードの設定
# cp -p /etc/my.cnf.d/mariadb-server.cnf /etc/my.cnf.d/mariadb-server.cnf.org # vi mariadb-server.cnf ・ ・ [mariadb] <------ 追加 character-set-server = utf8mb4 [client-mariadb] <------ 追加 default-character-set = utf8mb4 # systemctl start mariadb # systemctl status mariadb
データベースにアクセスし、確認
$ mysql -uroot -p「★管理者パスワード」
MariaDB [(none)]> show variables like "chara%"; +--------------------------+------------------------------+ | Variable_name | Value | +--------------------------+------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mariadb/charsets/ | +--------------------------+------------------------------+ MariaDB [(none)]> quit Bye
WordPress インストール
centOS7時の記事を参考に、インストール
バックアップ
とりあえず、WordPress は動作したと思うので、本サーバーのバックアップをしていきます、
WordPress データベースのバックアップ
本サーバー側で作業していきます
まずは、バックアップを保存するディレクトリを作成し、データベースをバックアップ。データバースの、ユーザ名、ホスト名、パスワードは事前に明確にしておきます
- データベース名 | WpDb
- ユーザー名 | WpAdmin
- パスワード | WpPasswd
- データベースのホスト名 | localhost
「mysqldump」でバックアップ
・バックアップ作業用ディレクトリを作成
・本サーバーでデータベースをすべてバックアップ
・ミラーサーバーへコピー
・ミラーサーバーのデータベースをリストア
・WordPress の設定をミラーサーバー用に変更
//バックアップ作業用ディレクトリ作成 $ cd ~ $ mkdir ./Backup $ cd ./Backup/ //本サーバーでバックアップ $ mysqldump -u WpAdmin -pWpPasswd -h localhost -A > WordPress.bak //バックアップファイルをミラーPCへコピー // SSH のポート番号 54321 の場合 $ scp -P 54321 ./WordPress.bak 192.168.0.100: Enter passphrase for key '/home/hogehoge/.ssh/id_ecdsa': //ミラーサーバーのデータベースをリストア $ mysql -u root -p WpDb < WordPress.bak パスワード: <-- データベースのパスワードではなく、mysql の root パスワード
これで、データベースのコピーは終了したが、WordPress の設定情報も更新されています。
したがって、本サーバーとミラーサーバーでは、アドレスが違うためミラーサイトへ直接のアクセスしても、内部的には本サーバーのURLで動作するので、正常に表示されません
データベースのWordPresのURL設定を変更する必要があります
変更方法は、mysqlのデータバース内容を直接変更する方法と、wordpressの設定ファイルで変更する方法を紹介します。
後者の方が簡単です
ミラーサイトのURL情報を変更:①mysql で設定の情報を書き換える
//ミラーサイトでの作業
$ mysql -u root -p「rootパスワード」
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| WpDb |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.001 sec)
MariaDB [(none)]> use WpDb
MariaDB [WpDb]> select * from wp_options where option_name = "siteurl";
+-----------+-------------+------------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+------------------------------+----------+
| 1 | siteurl | http://www.hogehoge.com/blog | yes |
+-----------+-------------+------------------------------+----------+
1 row in set (0.000 sec)
MariaDB [WpDb]> select * from wp_options where option_name = "home";
+-----------+-------------+------------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+------------------------------+----------+
| 2 | home | http://www.hogehoge.com/blog | yes |
+-----------+-------------+------------------------------+----------+
1 row in set (0.000 sec)
//次のコマンドで、www.hogehoge.com を www2.hogehoge.com に変更する
MariaDB [WpDatabase]>update wp_options SET option_value = "http://www2.hogehoge.com/blog" where option_id = 1 OR option_id = 2;
ミラーサイトのURL情報を変更:②wp-config.phpを編集する
#サーバーでの作業
#ブログのディレクトリへ移動
cd /home/www/html/blog/
# wp-config のバックアップを取る
sudo cp -p wp-config.php wp-config.php.bak
#編集
vi ./wp-config.php
#最後の行に、URL情報を追加
####
####
define('WP_HOME', 'http://www2.hogehoge.com/blog/');
define('WP_SITEURL', 'http://www2.hogehoge.com/blog/');
###
###
#保存
確認: 新しいURLで管理画面にログインし、「設定」>「一般」でURLが正しく認識されているか確認します。
メニューの「カスタムリンク」でうまく設定できない場合がありました
私の環境では、バックアップURLでほぼ正常に動作しましたが、一部のリンクで本サーバーURLへリンクされる場合が確認されました
調べてみると、必ずNGではないですが「カスタムリンク」でそのような現象が起きてます
カスタムリンクでは、「URL」項目に直接リンク先URLを設定しますが、そこに本サーバーのURLを設定している場合、うまく変換されず本サーバーへリンクしてしまう現象です
このリンク先のURLを相対パスにすることで、とりあえずは治りました
#カスタムリンク
https://www.hogehoge.com/blog/
# ↓
#相対アドレスへ変更
/blog/
これで、ミラーサイト(www2.hogehoge.com)でも本サーバーと同様にWordPress にアクセスできるようになりました
wp-content をバックアップ
投稿記事内容は、mysql に保存されていますが、テーマやアップロードしたメディアなどは、wp-content ディレクトリに保存されているようなので、これもバックアップします。
・WordPress インストールディレクトリへ移動
・tar コマンドで圧縮
・ミラーサイトへコピー
・ファイルをミラーサイトの作業ディレクトリへ移動
・展開
・展開された、wp-content ディレクトリをhttpd ユーザーアカウントに変更
・ミラーサイトのwp-contentディレクトリの名前変更
・作業ディレクトリのwp-content を移動
// wp-content をバックアップ # cd /home/www/html/blog # tar cvzf blog.tar.gz ./wp-content/ // blog.tar.gzを作業用のディレクトリに移動 # mv blog.tar.gz /home/hogehoge/Backup/ // アカウントの変更 # chown hogehoge.hogehoge blog.tar.gz // ミラーサイトへコピー # exit $ cd /home/hogehoge/Backup/ $ scp -P 54321 ./blog.tar.gz 192.168.0.100: Enter passphrase for key '/home/kazu/.ssh/id_ecdsa': // ミラーサイトで作業 // ユーザーホームディレクトリにコピーされている // 作業ディレクトリへ移動 $ mv ./blog.tar.gz ./Backup/ $ cd ./Backup/ // 展開 $ tar xvzf ./blog.tar.gz // 展開されたディレクトリをhttpd ユーザーアカウントに変更 $ sudo chown -R apache.apache ./wp-content/ // wordpress ディレクトリへ移動し、バックアップディレクトリ名を変更 $ cd /home/www/html/hogehoge.com/blog/ $ sudo mv wp-content wp-content.org // オリジナルのディレクトリを移動 $ sudo mv ./wp-content /home/www/html/hogehoge.com/blog/
これでミラーサイトのWordPress にログインできるはずなので
wordpress の「設定」⇒「一般設定」を確認


