サーバーの引っ越しのログ。
複数バーチャルホストでWPを運用しており、その他いくつかスタティックなサイトもある状態。
移動後、更にSSL化も行う
おおまかな手順
- ファイルの転送
- DBのダンプ・リストア
- バーチャルホスト設定
- ドメインのDNS設定変更
- SSL設定
ファイルの転送
これはscpを使う。
SCPを使ったサーバ間のデータ移動
参考:http://www.atmarkit.co.jp/ait/articles/1701/27/news009.html
ローカルのファイルをリモートへ転送
または
リモートのファイルをローカルへ取得
という2つの方法がとれるが、今回は旧サーバから新サーバへ転送させる。
また、新サーバへの認証は鍵認証となる。
鍵認証の準備
旧サーバでkey genする
old serverにログインし、key genする。今だけの利用なので、passphraseはブランク。
ローカルマシンにダウンロード。
このとき777にしないと落とせなかった。
Oldの方のAuth_keyとマージ
ssh-copy-idを使う。
ssh-copy-id -i id_rsa.hoge {user}@{host}
の書式でサーバに公開鍵を送ることができる。
参考:https://qiita.com/sakanashi/items/542ae428d9de9c7c59dc
今回の場合はこんなかんじ。
# ssh-copy-id -p 0000 -i /path/to/local/id_rsa.pub user@000.000.000.000
するとssh-copy-idが使えないといわれた汗
なので、homebrewでインストール
# brew install ssh-copy-id
再度実行すると不具合。
/usr/local/bin/ssh-copy-id: ERROR: failed to open ID file '/path/to/local/id_rsa': No such file or directory(to install the contents of '/path/to/local/id_rsa.pub' anyway, look at the -f option)
とのことなので、おとなしく-fオプションをつける。
# ssh-copy-id -f -p 11223 -i /path/to/local/id_rsa.pub user@000.000.000.000
そしたら成功。
Number of key(s) added: 1
サーバーに入ってみると、ちゃんとauthorized_keyが更新されている。
SCPでファイル転送
書式は、
scp option -i 秘密鍵 コピーしたいファイルパス 受取先パス
なので、旧サーバへログインし、
# scp -r -p -P 0000 -i /home/admin/.ssh/id_rsa /path/to/docroot admin@example.net:/path/to/new/docroot
こんな感じで、ドキュメントルートをそれぞれ転送。
事前に新サーバに転送先のディレクトリを作っておくこと。
所有者もログインユーザになるように。
もし別ユーザの所有だったら修正しておく。
chown admin:admin -R /path/to/new/docroot/
次はDB。
DBのダンプ・リストア
ダンプを取って、そのまま移動。
dumpデータ取得
全データのdump
# mysqldump -u root -p -x --all-databases > dump.sql
DBを選択してdump
# mysqldump --default-character-set=utf8 -u root -p database_name > dump.sql
複数Tableを選択してdump
# mysqldump --default-character-set=utf8 -u root -p database_name table_name1 table_name2 > dump.sql
復元する
# mysql -u root -p < dump.sql
新サーバで作成を確認し、
各ユーザーでのログインも確認する。
既に同じユーザがいる場合、PWが上書きされるので注意。
その場合はこれで戻す。
UPDATE mysql.user SET Password=PASSWORD('mypassword') WHERE User='myuser';FLUSH PRIVILEGES;