Google Compute Engineで WordPressサーバーのOSアップグレード、ミドルウェアアップグレードを行いたかったので、その時のサーバー移行メモです。
127.0.0.1 → 127.0.0.2へのWordPress移行を想定
◆DBダンプ
権限付与(127.0.0.1)
1 |
grant all privileges on *.* to wordpress@127.0.0.2 identified by 'password'; |
疎通確認(127.0.0.2)
1 |
$ mysql -h 127.0.0.1 -u wordpress -p |
◆DB データベース作成(127.0.0.2)
1 |
$ mysql -u wordpress -p'password' -e'create database wordpress_database default character set utf8mb4;' |
◆DBリストア(127.0.0.2)
1 |
$ mysql -u wordpress -p'password' wordpress_database < /home/apache/wordpress_database.sql |
ファイル同期は、rsyncで行いました。
◆ファイル同期設定(127.0.0.1)
1 2 3 4 5 6 7 8 9 10 11 |
$ yum -y install rsync $ vi /etc/rsyncd.conf //下記を加える hosts allow = 127.0.0.2 hosts deny = * list = true uid = apache gid = apache read only = false auth users = apache strict modes = false |
◆鍵作成(127.0.0.2)
$ cd /home/apache/.ssh/
$ ssh-keygen -t rsa
◆公開鍵設定(127.0.0.1)
$ vi /home/apache/authorized_keys
127.0.0.2の公開鍵を加える
◆SSH鍵にてrsync
1 |
$ rsync -avz -e "ssh -i /home/apache/.ssh/id_rsa" apache@127.0.0.1:/home/apache/www/test.com/ /home/apache/www/test.com/ |
◆Wordpress自体を最新にする(127.0.0.2)
移行前のWordPressが古すぎたせいか、WP管理画面上でバージョンアップができなかったので、手動でファイル置き換え
1 2 3 4 5 6 7 8 9 10 11 |
//最新のWordPressファイルをダウンロード $ cd /home/apache/www/ $ wget https://ja.wordpress.org/wordpress-5.0.2-ja.tar.gz $ tar xvfz wordpress-5.0.2-ja.tar.gz //古いファイルを消す $ sudo rm /home/apache/www/test.com/htdocs/wp-includes -Rf $ sudo rm /home/apache/www/test.com/htdocs/wp-admin -Rf //最新ファイルに上書きする $ cp /home/apache/www/wordpress/* /home/apache/www/test.com/htdocs/ -Rf |
◆http.confの設定例
1 2 3 4 5 6 7 8 9 10 11 12 |
<VirtualHost *:80> ServerAdmin admin@test.com DocumentRoot /home/apache/www/test.com/htdocs ServerName test.com ServerAlias test.com <Directory "/home/apache/www/test.com/htdocs"> AllowOverride All Require all granted </Directory> ErrorLog logs/test.com-error_log CustomLog logs/test.com-access_log combined env=!nolog </VirtualHost> |
◆ssl.confの設定例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<VirtualHost *:443> DocumentRoot "/home/apache/www/test.com/htdocs" ServerName test.com ErrorLog logs/test.com.ssl_error_log TransferLog logs/test.com.ssl_access_log LogLevel alert SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA SSLCertificateFile /etc/pki/tls/certs/test.com.crt SSLCertificateKeyFile /etc/pki/tls/certs/test.com.key SSLCertificateChainFile /etc/pki/tls/certs/test.com.ca <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/home/apache/www/test.com/htdocs"> AllowOverride All Require all granted </Directory> <Location /wp-login.php> AuthUserFile /home/apache/www/test.com/htdocs/.htpasswd AuthGroupFile /dev/null AuthName "Password Protected" AuthType Basic require valid-user </Location> </VirtualHost> |
※<Location /wp-login.php>の部分は BASIC認証。必要に応じて。.htaccessで設定してもいい。