CentOS8 でミラーサイトを作る/WordPress のバックアップ

Linux (CentOS、Rocky、Ubuntu)

前回、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 の設定情報も更新されています。
したがって、本サーバーとミラーサーバーでは、アドレスが違うためミラーサイトへはアクセスできません。
ミラーサイトの、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;

これで、ミラーサイト(www2.hogehoge.com)のWordPress にアクセスできるようになったはずです。
WordPress の設定の、「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 の「設定」⇒「一般設定」を確認

コメント

タイトルとURLをコピーしました