WordPressの「設定」>「一般」のところにある「WordPress アドレス」と「サイトアドレス」を書き換えれば、WordPressのドメイン変更ができそうに見えますが、この方法ではドメイン変更は完全には出来てません。
そもそもドメインを変更するわけなので、この設定をいつ、新旧どっちのドメインで変更するの?ってなりません?
旧ドメインのWordPressでこの設定を変えたら、その後ログインできませんし記事も見れなくなります。新ドメインで変えようと思っても、WordPressへログインすら出来ない(URL設定は旧ドメインのままなので)です。
なので、普通はサーバー移転とドメイン変更は一緒に(または、ついでに)やることになります。そのとき同時にデータベースの中身を旧ドメインから新ドメインへ置換する作業が必要です。
WordPressを別サーバーへの移転してドメイン変更する大体の流れは、こんな感じ。
- 新サーバーを設定して使えるようにする
- 旧サーバーのファイルをダウンロード
- 旧サーバーからデータベースをエクスポートしてダウンロード
- 新サーバーのデータベースを設定しインポート
- wp-config.php を修正する
- 新サーバーへファイルをアップロード
- データベース内のドメインを置換
- 旧ドメインから新ドメインへ転送設定をする
作業時間(実際に手を動かす時間)は、慣れれば一時間かかりません。
ただ、新ドメインのサーバーの初期設定が終わってるとしても、ファイルのダウンロードとアップロードが、画像サイズやプラグインの量にもよりますが30分以上かかる場合もあります。
新ドメインの設定からするなら、全体で2日。実作業は、初めてなら1~2時間程度だと思います。このあたりでスケジュール考えてから始めてください。
ドメインが同じでWordPressを引っ越すだけの場合は、別のサーバーへWordPressを移行する方法をご覧ください。
サーバー移転をせずに、同じサーバーを使ってドメインを変更する場合でも手順は同じです。
同じサーバーで新ドメインを設定して、新ドメイン用のフォルダ(今のドメインとは別のフォルダ)にWordPressをインストールして・・という流れです。新旧サーバーが同じなだけでやることは全く変わりません。
サーバーによっては今のWordPressをそのまま使って(再インストールや引越し作業をなしで)ドメイン変更ができるサーバーもあります。例えば、さくらインターネットやヘテムルなどドキュメントルートを自由に指定できるサーバーなどです。
ただ、ドキュメントルートの変更によるやり方は旧ドメイン(今のドメイン)へのアクセスができなくなるので、このページでは解説していません。ご了承ください。
ドメインの変更が必要かどうか、もう一度検討する
WordPressのドメイン変更をする、ちょっとその前に・・・。なぜドメイン変更をする必要があるのか?をもう一度考えてみてください。
以下のような場合は、特にドメイン変更は止めたほうが良いと思います。
- トップページのランディングが少ない(下層の各ページでそれぞれランディングしてる)
- 集客の半分以上が自然検索(Google検索、Yahoo検索など)からの流入
- ページ数や記事数が多い(500以上)
- 一年以上運営してる
主にSEO的な観点からの話で、ドメイン変更後、Googleの検索結果で順位が落ちたり、検索結果に出なくなったりするリスクがあります。
検索からの流入を気にしてないなら良いんですが、そうは言っても実際にアクセスが減るとみんな焦ります。
ドメイン変更してアクセスが激減したからなんとかしたい、という相談って意外と多いです。ですが、ドメイン変更してしまった後からではやれることはあんまりないです。
担当者レベルではどうにもならないのかもしれませんが、対象サイトのアクセス状況を見て検索流入が重要であれば考えなおすような方向性に持っていくのをおすすめします。
新ドメインと新サーバーを設定して使えるようにする
まずは新ドメインと新サーバーを使えるようにしないといけません。
ついでにサーバーの引っ越しを考えてると思うので、今のサーバーよりも速度が早いとか、安いとか、無料SSLがあるとか、なにか良い点があるとこを選ぶはずですので、どこかを探して契約してください。また、新しいドメインも決めて取得してください。
ドメイン取得と同時にネームサーバーの設定をすることになるので、新しく契約したサーバーのネームサーバーを最初に設定しておくと便利です。
設定すべきネームサーバーは、サーバー会社のヘルプページや最初のアカウント取得時のメールなどに書かれてるはず。
新サーバーも新しいドメインでサイトが見れるように、パスワード、FTPログイン、メール設定などをして使えるようにしてください。
この設定は普通、サーバー会社が詳しいマニュアルを用意してるはずですので、それを見ながら順番にやればOKです。
まだこの段階では新しいドメインでのアクセスが出来ないはずなので、1日目の作業はココまで。ネームサーバーの反映に半日~1日かかるので続きは翌日です。
新ドメインの表示確認
1日待てばちゃんとサイトが見れるはずです。この段階で、新ドメインがちゃんと見れてるかどうか(レンタルサーバーの初期画面が出てるか?)確認してください。
見れない場合はまだ新サーバーと新ドメインの準備が出来てませんので、もうちょっと待ってからにしましょう。
不要なプラグインを停止する
この作業は必須ではありませんが、トラブルを防ぐためにもやっておいたほうが良いと思います。
今動いてるWordPressにログインして、定期的に何かするようなプラグイン、情報を送ったり送信したりするプラグイン、キャッシュ制御のプラグインなどを停止するか、それらの機能をOFFにしてください。
以下、いくつか例を上げますので参考にしてください。
- バックアップ関係のプラグイン(BackWPup、UpdraftPlus など)は、一度手動で実行してバックアップをとったあと、停止。
- セキュリティ関係のプラグイン(SiteGuard WP Plugin など)
- キャッシュ関係のプラグイン(W3 Total Cache、WP Super Cache、001 Prime Strategy Translate Accelerator など)
- 更新通知、Ping送信関係のプラグイン(Google XML Sitemapsの通知を更新機能、WebSub/PubSubHubbub など)
- リンク切れチェック、エラーチェック関係プラグイン(Broken Link Checker、Check Copy Contentsなど)
- 定期的に実行するプラグイン(EWWW Image Optimizerのスケジュール最適化機能、WP-Optimizeの自動最適化機能 など)
他はともかく、セキュリティ関係とキャッシュ関係は停止しておくことをおすすめします。
旧サーバーのファイルをダウンロードする
旧サーバー(今のサーバー)にFTPで接続して、ファイルをすべてダウンロードしてください。
必要なデータはウェブの公開領域以下の全データです。一般的には「public_html」や「httpdocs」「httpsdocs」などのフォルダ名になってると思います。
上の画像はエックスサーバーの場合(のドメイン名のフォルダ)の中身です。public_html以下の内容がウェブサイトの中身ですのでこのフォルダを丸ごとダウンロードしてください。
サイトがWordPressのみで作られてる場合は、他のフォルダの中身は不要です。
ダウンロード対象のフォルダの場所が分からない場合は、今のレンタルサーバー会社に聞くか、ヘルプページなどで「ドキュメントルート」で検索すれば載ってると思います。
旧サーバーからデータベースをエクスポートしてダウンロード
旧サーバー(今のサーバー)のWordPressが使ってるデータベースをエクスポートしてください。
WordPressの記事の内容、テーマ、プラグイン、ウィジットなどの設定は、ファイルではなくデータベースに保存されてます。
FTPでファイルをダウンロードしてアップロードするだけでは、WordPressの移行作業は出来ません。
このデータベースのエクスポート/インポート作業は必須ですので必ずやってください。
データベース名の確認
サーバ上にデータベースが一つしかない場合は問題ないんですが、複数データベースがある場合は対象のデータベースを間違えないようにしてください。
普通は分かりやすいようにデータベース名もドメイン名やサイト名などと似たような名前が付いてると思いますが、データベース名が分からない場合は以下の方法で確認してください。
さっきダウンロードしたファイルの中のWordPressの入ってるフォルダ(通常は「wp」フォルダ内)にwp-config.phpというファイルがあるはずです。
このファイルをエディタで開くと、下の方に「WordPress のためのデータベース名」の箇所があって、
define('DB_NAME', 'primarytext_kc');
と書いてる部分があります。この右側がデータベースの名前です。この場合だと「primarytext_kc」ですね。
データベースのバックアップ機能がある場合
レンタルサーバーによっては、データベースのバックアップを簡単に取ることができる機能がある場合があります。もしあれば、この機能でエクスポートしてください。
上の画面は、X2サーバーのMySQLバックアップの画面。対象のデータベースを間違えないようにして、「エクスポート実行」をするとデータベースファイルがダウンロード出来ます。(通常は「~.sql」というファイルになるはずです)
圧縮はどちらでも良いですが、データ量が多い場合は圧縮しておいてください。(インポートする時にファイルサイズが大きすぎるとアップロードできない可能性があります)
他に何かオプション指定ができる場合でも、初期状態(何も追加設定なし)でエクスポートしてください。
phpMyAdminでエクスポートする
データベースのバックアップ機能がない場合は、phpMyAdminを使ってデータベースをエクスポートします。
サーバーの管理画面のどっか(おそらく、データベース設定の近くあたり)にphpMyAdminへ入るためのリンクがあると思います。
リンクをクリックするとユーザー名とパスワードを聞かれるはずですので、入力してphpMyAdminに入ってください。
ユーザー名とパスワードがわからない場合は、上に書いてるデータベース名の確認と同じで「wp-config.php」に載ってます。
普通はサーバーの管理画面にあるはずですが、もしリンクがない場合、利用者側ではデータベースの操作ができない可能性があります。
レンタルサーバー会社に「データベースのエクスポートがしたい」と問い合わせると教えてもらえるか、エクスポート作業をしてもらえるかもしれません。一度、聞いてみてください。
phpMyAdminが表示されたら、左側のデータベース名一覧のところで対象のデータベース(「information_schema」ではない方)を選択してください。
「エクスポート」をクリックして、オプション指定は変更せずにそのまま「実行」を押すとデータベースのエクスポートが出来ます。
新サーバーのデータベースを設定しインポート
さきほどエクスポートしてダウンロードしたファイルを新サーバーのデータベースにインポートすれば、データベースの移行が完了します。
データベースを作成する
インポート作業自体ではデータベースの作成は行われませんので、先にデータベースを作っておく必要があります。移行先のサーバーのマニュアルなどを参考にデータベースを作成してください。
一般的には、
- データベースユーザーの作成(ユーザー名とパスワードを設定)
- データベースを作成
- 作成したデータベースにユーザーを割り当てる
という流れになると思います。
データベース名、ユーザー名とパスワードなどは旧サーバーと違うものでも問題ありません。(同じ名前で設定出来ない場合が多いと思います)
ここで作成・設定した内容と、近くに載ってるはずの以下の情報
- データベース名
- ユーザー名
- パスワード
- MySQLホスト名(上の画面だと青枠の部分)
をどこかにメモしておいてください。後で必要です。
phpMyAdminでデータベースをインポートする
先ほど作成した新しいデータベースのユーザー名とパスワードでphpMyAdminに入ってください。phpMyAdminへのリンクは管理画面内にあるはずです。
phpMyAdminが表示されたら、左側のデータベース名一覧のところで対象のデータベース(「information_schema」ではない方)を選択してください。
「インポート」をクリックして、旧サーバーでエクスポートしたデータベースのファイル(「~.sql」というファイル)をファイル選択で選んで、オプション指定は変更せずにそのまま「実行」を押すとデータベースのインポートが出来ます。
成功すれば、「インポートは正常に終了しました。」というメッセージが出て、左側にテーブルがたくさん増えてるはずです。
wp-config.phpを修正する
データベースの名前やユーザー名、データベースサーバーが旧サーバーと新サーバーでは違うはずなので、これらのデータベース接続情報を修正します。
旧サーバーからダウンロードしたファイルの中のWordPressの入ってるフォルダ(通常は「wp」フォルダ内)にwp-config.phpというファイルがありますので、エディタ(秀丸など)で開いてください。
新しいデータベースを作った時にメモしておいてもらった
- データベース名
- ユーザー名
- パスワード
- MySQLホスト名
の4箇所を新しい内容に修正して上書き保存してください。
新サーバーへファイルをアップロード
OKなら、FTPで接続して新サーバーのドキュメントルートフォルダ(「public_html」フォルダなど)にある「.htaccess」以外のファイルを削除してください。(レンタルサーバーの初期状態の画面を出すためのhtmlや画像を削除する)
その後、旧サーバーからダウンロードしたファイルのうちルートの「.htaccess」以外のファイルをすべてアップロードします。
旧サーバーからダウンロードした「.htaccess」ファイルには前のサーバー固有の設定が書かれてる場合が多いです。
例えば、PHPのバージョン指定、CGI実行指定、キャッシュの指定、マルチドメイン運用の場合のリライト指定、SSLの指定など。
これをそのまま新サーバーにアップロードすると、パスなどが違ってたり、そのオプションがサポートされてなかったりすると、サイトが全く表示されなかったり、500 Internal Server Errorになったりします。
新サーバーの方にすでに存在してる「.htaccess」にも、そのサーバーで動かすために必須の記述がある場合があります。これを旧サーバーの内容で上書きすると、同じようにサイトが見れなくなる可能性があります。
不要なトラブルを防ぐためにも.htaccessは上書きしないことをおすすめします。
「.htaccess」でリダイレクトなどをしてた場合は、後で新サーバーの「.htaccess」をダウンロードしてきて内容を確認しながら手動で追記してください。
データベース内のドメインを置換
ここがWordPressのドメイン変更で最も大事なところです。データベース内の旧ドメインをすべて新ドメインに変更します。
Database Search and Replace Script in PHP をダウンロード
Database Search and Replace Script in PHPへアクセスしてください。
サイトにアクセスすると以下のような画面になるので、Knowledge check の3つにチェックをつけてください。
この3項目を意訳すると、こんな感じの意味です。
- リスクがあることをわかってますか?
- このPHPスクリプトを公開したままにしないでください。
- 何をしようとしてるのか理解してますか?
チェックしたらメールアドレスを入れる欄が出てきますので、名前とメールアドレスを入れて「submit」してください。メールでPHPファイルのダウンロードURLが送られてきます。(gmailの方は迷惑メールに入ってると思います。)
メールを開いたら、「Download Search Replace DB v 3.?.? here.」が真ん中あたりにあるので、クリックしてください。
ファイルを保存ダイアログが開くはずなので、旧サーバーからダウンロードしたファイルがある「wp」フォルダ(「wp-config.php」などがあるフォルダ)に保存してください。
「Search-Replace-DB-3-1-0-emaildownloads.zip」みたいなZIPファイルになってますので、このフォルダで解凍すると「Search-Replace-DB-master」というフォルダが出てきます。
このフォルダ名を適当なぐちゃぐちゃの名前に変更してください。とても重要な作業ですので、飛ばさないでください。
このぐちゃぐちゃの名前にしたフォルダをサーバーの同じ位置にFTPでアップロードしてください。
Database Search and Replace Script in PHPでドメインを置換
Database Search and Replace Script in PHPにアクセスします。さっき変更したフォルダ名をパスにいれてアクセスしてください。
例えば、上の例だと、
http://(新ドメイン)/wp/fdasfepvcrthffda/
になります。(WordPressが「wp」フォルダに入っている場合)
うまく行けば、以下のような画面になります。画面ではぼかしてますが、databaseのところにname、userなどがすべてちゃんと入ってるはずです。
フォルダ名を適当なものに変更してるので、アクセスするURLが間違ってないか確認してください。
「データベース接続確立エラー」になってる場合は、wp-config.phpの内容が間違ってます。新しいデータベース名、ユーザー名、パスワードに変更したwp-config.phpをアップロードしてるかどうか確認してください。
databaseのところが全てちゃんと入ってない場合、このフォルダを置く場所が間違ってます。wp-config.phpと同じ階層に、フォルダごとすべて置いてアップロードしてください。
「replace」のところに旧ドメイン、「with」のところに新ドメインを書いてください。この時に、http://などはつけずに、最後も「/」はなしにして、ドメインだけ書いてください。
上の画面では、
- 旧ドメイン:primarytext.co
- 新ドメイン:primarytext.info
の場合です。
書けたら「dry run」をクリックすると、しばらくクルクル回って下のような結果が出ます。
「Cells changed」のところに出てる数字が変更される箇所の個数です。
数は人によっていろいろですが、ここがまったくない(すべて0)場合は旧ドメイン名を間違ってますので確認してください。
「view changes」をクリックすると、置換対象の最初20件が確認できます。
見てもよく分からないかもしれないですが、一応全部の「view changes」をクリックして意図したとおりになってるか確認してください。
上の画面だと、URLが変更される感じの表示ですので、意図どおりですね。
OKなら、「live run」を押してください。確認メッセージがでるので、「OK」すると置換が始まります。(5秒以内なら「stop」で停止可能です。)
完了したら結果が出ます。
In the process of replacing primarytext.co with primarytext.info we scanned 14 tables with a total of 2282 rows, 2041 cells were changed. 1375 db updates were performed. It all took 2.9599998 seconds.
こんなメッセージがでて「Updates」のとろこに数が出てればOKです。
「Rows」「Cells changed」「Updates」の数があってませんが問題ないです。
別に気にしなくてもいいと思いますが、
- Table:対象のデータベースのテーブル名
- Rows:そのテーブル内にあるデータのすべての行数(レコード数)
- Cells changed:そのテーブル内で置換されるセル(フィールド)の数
- Updates:多分、SQLのUPDATE構文の実行結果(= 更新された行数)
なので、置換する箇所が同じレコード内で複数ある場合、結果はCells changedの数より少なくなります。最大でもRowsの数を超えることはないはず。
完了したら「delete me」をクリックすると、確認メッセージがでてサーバーからこのスクリプトファイルのフォルダ(ぐちゃぐちゃにした名前のフォルダ)が削除されます。
とても重要な作業ですので、飛ばさないでください。
画面には、「Search/Replace has been successfully removed from your server」とメッセージが出てるはず。
この状態でブラウザを再読込(フォームの再送信確認が出ると思いますが、そのままでOKで)してみてください。404になると思います。
念の為、FTPでもアクセスしてサーバーからフォルダがなくなってることを確認してください。
間違ってアップロードしたら困るので、自分のパソコンにある解凍前のZIPファイル(「Search-Replace-DB-3-1-0-emaildownloads.zip」みたいなファイル)とフォルダも削除しておいてください。
WordPressにログインして、パーマリンクの設定を保存
WordPressにログインして管理画面に入ってください。管理画面のURLはドメイン名以外は前と同じはず。ユーザー名とパスワードも以前と全く同じです。
404で見つからない場合は、
http://(新ドメイン名)/wp/wp-login.php
でアクセスすれば入れるはずです。(「wp」フォルダにWordPressを入れてる場合)
WordPressの管理画面がちゃんと見れたら、設定 > 一般設定に入ってください。「WordPress アドレス (URL)」「サイトアドレス (URL)」が新ドメインに変更されてるはずなので確認してください。
次に、設定 > パーマリンク設定に入ってください。大丈夫だと思いますが、一応、内容がおかしくないか確認したら、変更がなくても「変更を保存」をクリックしてください。
これで、ルートにある「.htaccess」ファイルが更新されてサイトへのアクセスが可能になります。「パーマリンク構造を更新しました。」とメッセージが出れば完了です。
「変更を保存」をクリックしたあと、「.htaccess を更新する必要があります。」というメッセージが出た場合、.htaccessのパーミッションを修正するかドキュメントルートフォルダのパーミッションを変更する事が必要です。
ただ、ここまでこのページの手順通りで作業してきて、このメッセージが出た場合、今回移転先として利用しようとしてるサーバーは止めたほうが良いです。
この問題を修正しても今後WordPressでサイト運用をしていく上で、WordPressやプラグインのバージョンアップが出来ない、画像がアップロードできない、など問題が発生する可能性が高いです。
使おうとしてるサーバーはWordPressの利用を前提としてサーバー設定等がされてませんので、他のWordPressが問題なく使えるようなサーバーを検討したほうが良いです。
候補をお探しなら、WordPressでの運用も全く問題なく、高速表示、無料SSLが月額1,000円で利用できるできるエックスサーバーがおすすめです。
停止したプラグインの再開と変更確認
ここまでの作業でWordPressドメイン変更は完了してます。一度、新ドメインでサイトにアクセスして確認してみてください。
ちゃんと見えてたら、サイトを開いた状態で右クリックして「ページのソースを表示」にしてください。メニューから「検索(F)」(または、Ctrl+F)で検索画面を開いて旧ドメインを入れて検索して見てください。(GoogleChromeの場合の手順、他のブラウザでも同じことができるはずです。)
検索結果が0ならOKです。もし、何件かヒットしてる場合はドメイン変更がちゃんと出来てない可能性があります。
可能性はたくさんありますが、いくつか例をあげますので参考にしてください。
たくさん(10件以上)ヒットしてる場合は、Database Search and Replace Script in PHPでの作業を間違えてる可能性があります。ドメイン名を間違えてるとか、「live run」を押してないとか、です。
少し(何件か)ヒットしてる場合、しかも、ヘッダーやフッターの部分っぽい場合。おそらく、WordPressのテーマファイルの中に直接ドメイン名が書かれてるんじゃないかと思います。
今回の手順ではテーマファイル内のドメイン置換をしてませんので、テーマファイル内に旧ドメインが書かれてる場合は探し出して手動で変更してください。
ちゃんとテーマファイルが作られてる場合はテーマファイル内にドメインが書かれてる事は無いはずですが、独自作成のテーマの場合は直接ドメイン指定がされてるかもしれません。
ソースの確認もOKなら、停止したプラグインなどを全部再開して、もう一度サイトのチェックをしましょう。メールフォームからもテストメールを送信してみてください。
メールソフトの設定もして、gmailやプロバイダーのWebメールなどからテストでメールを送ってみて、メールフォームからのテストと合わせて受信できたかどうかを確認してください。
旧ドメインから新ドメインへの転送設定
このセクションは必要に応じて行ってください。僕が思うには、この作業が必要なのであればドメイン変更はしないほうが良いです。
旧ドメインへのすべてのアクセスを新ドメインへ転送(301転送)するために、.htaccessに
RewriteRule .* http://(新ドメイン名)%{REQUEST_URI} [R=301,L]
を追加してください。
新ドメインが「http://primarytext.info/」の場合、追加する.htaccessは以下のようになります。
#URL転送 RewriteEngine on RewriteRule .* http://primarytext.info%{REQUEST_URI} [R=301,L]
旧サーバーの.htaccessを更新して、旧ドメインでアクセスして転送されるかどうか確認してください。
この転送設定ですが、基本は永久にしておく必要があります。つまり、旧ドメインと旧サーバーは解約出来ません。(サーバーに関しては、旧ドメインも新サーバーへ移行するという手段もありますが、ドメインは保持し続ける必要があります)
Google Analyticsを使ってる場合は、実害はありませんが、プロパティ、ビューのドメイン変更もしといた方がアクセス解析する時に便利です。
ドメインが変わったので、SearchConsoleは必ず新規で登録になります。忘れずに登録してください。旧ドメインでリンクの否認をしてた場合は(転送設定をかけてますので)新しいドメインでアップロードし直さないとけません。
アドレス変更ツールも使ってURL変更の通知をしておいた方が無難かと思います。
お客さんやユーザーへ連絡ができるのであれば、一応、お知らせ等も出した方が良いじゃないでしょうか?(ログイン情報などCookieに保存してる情報が引き継がれません)
おまけ
かなり詳しく書いたので、これを読んでもらえればWordPressのドメイン変更作業はできると思います。
でも、読んでみたけどややこしそう、やってみたけどうまくいかなかった、などでお困りの場合、移転作業や移転時のトラブル対応をプライマリーテキストでお受けすることが出来ます。
ただ、最初に書いてますが、ドメイン変更はおすすめしませんので、どうしてもしないといけない理由がない限りは止めといた方が良いと思います。
[…] 最終的に、こちらのサイト様に行きつくことが出来まして、復元できました。ありがとうございますm(_ _)m […]