黒ブタBLOG

サイトを別サーバーへ移転したい!それに伴いデータベースとワードプレスを丸々移す方法

どーもこんにちは、黒豚です。
今回はホームページを別のサーバーへ移転する方法をご紹介いたします。

流れ

旧サーバー 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アドレスを探り当てるツールが調べればいくらでも出てきますので、それらを使ってみてください。

http://seocheki.net

でも調べられると思います。