どーもこんにちは、黒豚です。
今回はホームページを別のサーバーへ移転する方法をご紹介いたします。
流れ
旧サーバー mysqldumpでデータベースをdump
↓
scpでdumpファイルを新サーバーに送信
↓
新サーバーに旧サーバーと同じデータベースを作成
↓
作成したデータベースにdumpファイルを復元
↓
scpを使い、旧サーバーから旧サイトのWPファイルを丸々新サーバーにコピー
↓
新サーバーのサーバー設定が必要であれば行う
↓
DNSの変更をおこなう。
このような流れです。
まずはターミナルを開き、SSHで接続
ssh -p 22 ユーザー名@IPアドレス
次はバックアップしたいデータベースをdumpする
mysqldump -u root -p データベース名 > dump.sql
(例)
mysqldump -u root -p testDB > dump.sql
次にバックアップしたdumpファイルを別サーバーにコピーする
scp コピーするファイル名 コピー先のユーザー名@コピー先のIPアドレス:コピー先のディレクトリ
(例)
コピー先のIPアドレス:123.456.789.10
コピー先のユーザー名:root
送りたいファイル:dump.sql
コピーしたファイルの格納先パス:/home/test
この条件で別サーバーにファイルを送信する場合
scp dump.sql root@123.456.789.10:/home/test
したらばちゃんとファイルが送れたか確認。
送信先にsshで接続
ssh -p 22 root@123.456.789.10
パスワードを入力し、接続
送信先のディレクトリにアクセス
cd /home/test
移動したらファイルの確認(ついでにちゃんとデータが入っているか容量も確認)
ls -la
-rw-r–r– 1 root root 6430225 5月 31 21:07 2016 dump.sql
確認完了
ちゃんと送ったファイルもあり、中身もある。
次にファイルを復元していく。
復元する前に、前のサーバーに置いてあったデータベースと同じデータベースを作成する必要がある。
のでSQLにアクセス
mysql -u root -p
パスワードを入力しアクセスしたら、作成予定のデータベースと同じ名前のデータベースがないか確認。
SHOW DATABASES;
かぶりがないのを確認したらデータベースの作成
前のサーバーに置いていたデータベース名と同じ名前のデータベース作成
CREATE DATABASE testDB;
作成したら次はデータベースにユーザーとパスワードの設定
基本的に前サーバーと同じ内容で登録したい。
前サーバーのデータベースの内容とかわからないという方は、wp-config.phpを確認すれば記述してあります。
wp-config.phpはどこにあるかわからない人
基本的にwp-config.phpはwp-adminと同じ階層にあります。
ワードプレスをダウンロードしてそのままフォルダを変更してない人はおそらく「wp」というファイル名でアップロードしたかと思いますので、その直下のファイル群を見てみてください。
多分wp-config.phpがあると思います。
grant all on データベース名.* to 'ユーザー名'@'MySQLのホスト名' identified by 'パスワード';
(例)
データベース名:testDB
MySQLのホスト名:localhost
ユーザー名:myadmin
パスワード:123456789
grant all on testDB.* to 'myadmin'@'localhost' identified by '123456789';
設定が終わったらexit;でmysqlからログアウトしdumpファイルの復元
mysql -u root testDB < dump.sql
中身があるか確認。
mysqlにログイン
mysql -u root -p
SHOW TABLES FROM testDB;
中身があれば復元成功です。
次はワードプレス自体を丸々移行していく。
元サーバーにログインし、scpで新サーバーにディレクトリ毎コピー
今回の条件
旧サイトのワードプレス格納しているディレクトリは「test-site」
新サーバーの「nginx」にそっくりそのまま写したい
旧サーバーの送りたいディレクトリの絶対パスは
/var/www/html/test-site
新サーバーの格納パス
/usr/share/nginx/
この条件でコピーする
旧サーバーに接続
ssh -p 22 ユーザー名@IPアドレス
scpで新サーバーにコピー
今回はディレクトリの階層下も全部コピーしたいので「-R」コマンドを使う
scp -R /var/www/html/test-site root@123.456.789.10:/usr/share/nginx/
そうすると送り先のサーバーのログインパスワードを聞かれるので入力するとデータのコピーが開始されます。
データ量によって完了までの時間は大きく変わるかと思いますが、1サイト程度であれば数分でコピーが完了するかと思います。
コピーが終わったら、新サーバーでconfの編集をする。
Apacheの場合は
find / -name httpd.conf
でconfファイル場所を探す
nginx(エンジンエックス)の場合は
find / -name /etc/nginx/conf.d
でconfファイルを探す。
confファイルの作り方はサーバーの設定などでググってください
(例)サーバー移転 conf
あ、サーバーの設定を追加した場合は必ずサーバーの再起動を行ってください。
再起動方法については「Apache再起動」「nginx再起動」などで検索
nginxは↓の方がいいかも。
(例) systemctl restart nginx
confファイルの設定が終わったら、最後にDNSの変更をして終了です。
これでサーバーの移転が完了です。
移転が成功していればドメインにアクセスした場合、今まで通りの表示と同じ内容で出力されています。
ただ、最初は本当に移っているか不安になるかと思います。
そんな時は、ドメインからIPアドレスを探り当てるツールが調べればいくらでも出てきますので、それらを使ってみてください。
でも調べられると思います。