今回はWordPressのサーバのお引越しの方法を書いていきます。
筆者は、ずっとロリポップとXサーバ、両方契約して使っているのですが、
両方使ってる理由は、ずっと引っ越したいけど、長年引っ越しに失敗し続けてきたブログがあったからなんです。
というのも、毎回チャレンジする度にトラブって挫折してたんです。
- アドレスそのままで引っ越しのやり方が複雑で分からん
- データベースを引っ越すとバグる
- データベースだけ新しくすると、いろいろ設定し直してもどっかがエラー出る
- WordPressのバージョン、PHPのバージョンの変更でまたバグる。
- 上記が遂に解決したと思ったら、httpsのせいで、移行先のWPにアクセス不能に陥る
と、もう毎回毎回失敗続きで、絶望しながら毎年諦めてたんですけど、
やっと出来たんです、しかも失敗なしだと案外簡単に、パパっといけました。
実際ロリポップからXサーバに引っ越した結果、
Sitespeed insightでチェックすると、
サーバ応答時間は半分くらいになったんで、
まぁ、引っ越した価値はあっただろうと感じています。
というわけで、その方法を具体的に紹介していきます。
ちなみに私は
- ロリポップからXサーバにWordPressを引っ越しした。
- ドメインはそのまま同じドメイン
- https化にReally Simple SSLを使用(これ、一時的にWPにアクセス不能になりますが、解決方法があります。)
- バックアップ、復元には、UpdraftPlusを使用
といった感じです。説明も、それを例に説明していきます。
Really Simple SSL以外の方法でhttps化をしてる場合は、一度バックアップ前にSSLを解除しないと同じようにアクセス不能で困る可能性が高いので注意です。
この方法を使うと一時的に起こる事
注意ポイント
今回紹介する方法を使うと以下のような事が一時的に起こります(最終的にはうまくいきます)
- Really Simple SSLのせいで一時的にWordPress(管理画面含む)に完全アクセス不能になる(FTPからReally Simple SSLを停止させる方法があるので、それを使ってロックアウト状態を解除します)
- 移行過程でhttpsにアクセス出来ない時間が発生します。(httpにはアクセス可能。私の場合は、30分間位この時間が発生した。ダウンタイムをゼロにするには、有料プラン利用が必要)
WordPressサーバ移行の順序(全行程)
- UpdraftPlusを移行元にインストール、バックアップ実行。
- 移行先サーバにドメイン登録(移行元と同じドメインです)
- 移行先サーバに新規でWordPressをインストール
- 移行先WordPressにアクセスするためにhostsファイル編集。
- 移行先WordPressにUpdraftPlusをインストールし、復元。(締め出し喰らう)
- Really Simple SSLをFTPから強制停止(これでアクセス可能に)
- 移行先WordPressに各種不具合バグがないか再チェック
- hostsファイルを元に戻す。
- ネームサーバを移行先に書き換え。
- ネームサーバ移行完了後、移行先サーバでSSL設定
- SSL設定反映後、Really Simple SSLを有効化
- もし.htaccessに直書きしてる事があれば、それを移行先にも追記
ちゃんとhttpsでサイト(ブログ)表示が出来てれば、移行(引っ越し)完了!
という悪夢の12工程(特に5番辺りで泣きそうになる)ですが、
実際やってみると、難しくはないのでちゃちゃっとやっちまいましょう。
ここから、1つ1つ細かく解説していきます。
参考
移行元=ロリポップからXサーバならロリポップの事
移行先=ロリポップからXサーバならXサーバの事
誤って作業中にページを閉じて、ヤベっ分かんなくなった!ってならないようにブックマークしておく事をおすすめします。
サーバ移行の作業開始!その前に!
上に記した通り、WP締め出しを食らったり、バグったり、間違って消しちゃったりと、なにかとサーバ移転はトラブルがつきものなので、必ず、失敗した時にやり直せる体制(バックアップを事前にPCなどに保存など)を整えてから実践してください。真似する場合は自己責任でお願い致します。
必ず確認する事
- WordPressに登録してあるEmailアドレスは生きてるか?(パスワードをリセットする必要がよく出るので、そのためにパスワードリセットメールを受信できる必要があります。これが出来ないと最悪ログイン出来なくなります。)
ではサーバ移行作業開始!
step
1UpdraftPlusを移行元にインストールし、バックアップを実行。
まずは、移行元WordPressのバックアップをUpdraftPlusプラグインで取ります。このバックアップを移行先のWordPressで復元する事で、完全なコピーサイトが移行先に一瞬で出来上がります。(素晴らしすぎて感動するレベル)
注意!Really Simple SSLを現在使ってない方へ
注意
Really Simple SSLプラグイン以外の方法でhttps化してる場合は、そのままUpdraftPlusでバックアップして復元すると、復元先のWordPressにアクセス不能になり、そこからの復旧も非常に難しくなります(移行先WPを一度削除するはめになる)。
なので、バックアップ前に一度SSLを解除し、httpでサイトにアクセスできるようにしてからバックアップを取り、そしてhttpsに戻すという作業を先にしとく事をおすすめします。(バックアップをhttpにしておく事で、移行先の復元時にトラブらない)
では、プラグインUpdraftPlusを現在お使いでない場合は、
UpdraftPlusをインストールして、有効化してください。
UpdraftPlusを有効化したら、「設定→UpdraftPlus Backups」と行き、
そこの設定タブからまず保存先を選んで、保存先と接続します。
例:Google Driveを選んだら、下にスクロールして、一旦「変更の保存」をした後、指示に従ってGoogle Driveにログインし、再度保存する。
保存先設定が完了したら、その後、Backup/Restoreタブに戻って、今すぐバックアップをクリックし、
指示に従って進めば、バックアップが完了します。
(全部のファイルをバックアップしてください。)
*画像一番下の英語は「手動でのみ削除可能にするの意味」
画面を下にスクロールして、
画像のように、5つのボタンが表示されれば、OKです。
この5つのボタンをクリックして、デスクトップに圧縮ファイルをダウンロードします。(もちろん最初に指定した保存先からもダウンロードできます。)
注意ポイント
このダウンロードファイルは、万が一に備えて、しっかりPCに保存しておきましょう。万が一作業中に間違えて、移転元のWordPressを削除してしまった!なんて事になった時に、このバックアップさえあれば、復活できます。
step
2移行先のサーバにドメイン登録する(移行元と同じドメインです)
今度は移行先のサーバにログインして、
ドメイン登録します。
例えば、Xサーバを例に出すと、
今回nebi.comというサイトを引っ越しするのであれば、
それを「ドメイン設定→ドメイン設定追加→確認画面へ進む→追加する」と進めば完了です。
↓
無料独自SSLに関しては、チェックをこの時点で入れてもONにはならないのでどちらでもいいです。(下の画像のようにSSL設定に失敗しましたと出るだけです。これは気にしなくてOK。)
PHPバージョンの確認
ちなみに、移行元と移行先のPHPバージョンが違うと、WordPress引っ越し後に不具合が出る可能性がありますので、引っ越し時は一度バージョンを合わせた方が良いでしょう(今合わせなくても、不具合が出たら変更でもOKだが、心配な人はPHPもチェック。
あとWordPressのバージョンも違うと、やはり不具合が出るでしょう。いずれにせよ、移行先のWPは移行元を消さない限りは何度でもやり直しが効くので、不具合が出て直せなかったら、一度全部削除して古いWPを再インストールし直すというのもありです。)
PHPは、サーバにPHPバージョンの切り替え設定画面がありますので、そこで設定します。
step
3移行先サーバに新規でWordPressをインストールする
移行先サーバにWordPressをインストールします。
この時点では、サイト名は何でもいいです。
あと、ユーザー名、パスワードに関しては、ログイン時のトラブルを減らすためにも、
移行元のWordPressと同じものを入力しておきましょう。
データベースは「自動でデータベースを生成する(新しいデータベースを作る)」を選びます。後で復元時にデータベースは上書きされます。
step
4移行先ドメインにアクセスするためにhostsファイル編集。
さて、現状GoogleChromeなどのブラウザで自分のサイトのアドレスにアクセスしても、もちろん移行元のサイトしか表示できません。
しかし、自分のPCのブラウザからだけ移行先のWordPressサイトを表示させる方法があるので、
それをやるために、WindowsやMacのファイルを一時的にイジる必要があります。
これについては、このページが詳しいので、
このページの指示に従ってやって頂くのが一番です。
一応、やり方を簡単に説明すると、
Windowsなら、
C:\WINDOWS\system32\drivers\etc\
Macなら、
移動→フォルダへ移動から/private/etc
とフォルダを開いていき、その中のhostsファイルをメモ帳などで開きます。
(誤ってhostsファイルを消してしまったりした時のために、やる前にhostsファイルのコピーを取る事をおすすめします。)
最後の行に、
サーバIP + example.com
(例:123.45.123.45 nebi.com)
を追記して、上書き保存して完成です。
サーバIPは、ご自身のサーバにログインすれば、調べられます。
Xサーバならアカウント→サーバー情報から見れます。
これで、ブラウザを一旦閉じて、ブラウザから自分のサイトにアクセスすると、
移行先のWordPressが表示されます。(表示されない場合は、httpでアクセスしてみてください。httpsでアクセスしても繋がりません。)
step
5移行先WordPressにUpdraftPlusをインストールし、復元
ブラウザから移行先のWordPressにログインし、
UpdraftPlusをインストール、有効化します。
そして、UpdraftPlusのBackup/Restoreタブ画面で下にスクロールしていくと、
「バックアップファイルをアップロード」というリンクがあるので、
それをクリックし、先程作った5つの圧縮バックアップファイルをアップロードします。
アップロードが完了したら、「復元」ボタンが現れますから、
その復元ボタンを押して、指示に従って進めば、
復元が完了します。
全部ティックして復元。
そして、復元が完了し、「よーし!うまくいった!」と
別のページに移動しようとどっかをクリックした瞬間、
WordPressから閉め出され↓
無効なURLです。プログラム設定の反映待ちである可能性があります。
しばらく時間をおいて再度アクセスをお試しください。
この表示が出て、アクセス不能になります(笑)。
メモ
これは、バックアップファイルがhttpsなのに、移行先サーバはhttpsにまだ対応してないからです。でも、httpにこの時点でアクセスしても、強制的にhttpsにリダイレクトされてしまい、管理画面にも入れなくなります。
ここで、FTPから、諸悪の根源であるReally Simple SSLプラグインを停止に行きます(笑)。
step
6Really Simple SSLをFTPから解除!
FTPから、移行先のWordPressフォルダにアクセスします。(私は、CoreFTPを使ってます。)
wp-content/plugins/really-simple-sslとフォルダを開いていき、
その中のforce-deactivate.txtというファイルを選び、
そのファイルの名前をforce-deactivate.phpに変更します。
txtをphpに変えるわけです。
FTPソフトにはRename機能が大抵あるので、
それで拡張子をphpに変えて上書き保存します。
上書きが済んだら、下のURL↓
http://あなたのサイトアドレス/wp-content/plugins/really-simple-ssl/force-deactivate.php
*あなたのサイトアドレス部分を書き換えてくださいね。
をブラウザのアドレスバーにコピペして、ブラウザからアクセスします。
アクセスすると、
Force deactivation of Really Simple SSL
こういう画面が出ます。この画面を確認したら、
もうReally Simple SSLは停止してるので、
WordPressの管理画面にアクセスできます。
というわけで、WordPressの管理画面にアクセスするわけですが、
アクセスする時は、httpでアクセスしてください。
httpsでアクセスすると、
この画面が再び出るだけです。「あれ、おかしいなぁ」と思ったら、httpsになってないか、確認して、sを消してください。
それでもアクセス出来ない場合は、ブラウザのキャッシュを消すか、他のブラウザからアクセスすると大抵直ります。
(それでダメなら、もう一度、上の工程を試してみたり、ブラウザを再起動したりしてみてください。何やってもダメならもうWordPressを一度消して、再インストールからやり直すしかないかもしれません。)
ちなみに
Really Simple SSLプラグインを削除しても無駄です。アクセスできません。
万が一削除してしまった場合は、
もう一度、公式ページからダウンロードして、FTPから同じ場所にアップロードすれば、この手順は使えます。
一応、Really Simple SSLの公式FAQのリンクを貼っておきます。
https://really-simple-ssl.com/knowledge-base/uninstall-websitebackend-not-accessible/
step
7 ログインして、不具合がないかチェック!
そして、無事Really Simple SSLを停止して、WordPressにアクセスすると、
この画面になりますので、データベースを更新ボタンを押せば、
ログイン画面が出ます。
ちなみに
ログイン画面で、正しいパスワードを入力してるのに、 ログイン出来ないという現象もよく発生します。
その場合は、
「パスワードをお忘れですか ?」リンクをクリックして、
新しいパスワード(同じパスワードでもOK)を発行すれば、ログインできます。
↑
この現象が発生するので、必ずWordPressを登録したメールアドレスにアクセスできる状態にしておいてください。
(ちなみに当方はSiteGuard WP Pluginを入れてますが、そのまま移行元の奴を復元しても特に問題はありませんでした。別途ログインアドレスを設定してる場合は、ログインでトラブった時はそっちにアクセスしてみるのもありですし、404になったりする場合は、SiteGuard WP PluginをFTPからフォルダごと削除すれば入れたりします。)
ポイント
ここで、表示やリンクに不具合がないか、実際のサイト(ブログ)を開いて、
チェックしていきます。
PHPのバージョンやWordPress及びプラグインのバージョンが、移行元と違うと、バグが出たりしがちです。
また、ファビコンの設定の仕方によっては、ファビコンが消えてたりするので、それもチェックすると良いです。
問題が出るようなら、古いVrに戻す必要なども出てくると思います。
特に最新のWordPressは、投稿を書く画面(ビジュアルエディタ)がGutenbergというブロックエディタに変わってるので、急バージョンに戻したい場合は、Classic Editorというプラグインを入れる必要があります。
step
8hostsファイルを元に戻す。
移行先がバッチリであれば、先程書き換えたhostsファイルを元に戻します。
もう一度
C:\WINDOWS\system32\drivers\etc\とフォルダを開いていき、その中のhostsファイルをメモ帳などで開きます。
先程最後の行に追記した、
サーバIP + example.com
(例:123.45.123.45 nebi.com)
の部分だけ削除して、上書き保存して完成です。
これで、ブラウザで元通り、移行元のWordpressサイト(ブログ)が表示されるようになります。
step
9ネームサーバの書き換え
そして、いよいよドメインを移行先サイトに移します(ネームサーバの紐づけ)。
この作業をする事で、ネット上で移行先のWordPressサイトが表示されるようになります。
まず、お持ちのドメインの管理会社のサイトのマイページにログインします。
ここでは、ムームードメインを例に出して、解説していきます。
ネームサーバの設定変更画面に移動します。
例えば、Xサーバに移行するなら、GMOペパポ以外のネームサーバを使用するを選び、
Xサーバのネームサーバを入力していきます。
各社のネームサーバは「Xサーバ ネームサーバ」のようにググる事で出てきます。
これで設定変更をすれば、下記のような表示が出て完了です。
ちなみに2、3日かかると出てますが、私の場合は、30分程度で完了しました。
どうやって確認するかというと、
これはこまめに自分のWordPressサイトにアクセスするしかないです。
15分置きくらいに、アクセスしてみて、移行先の管理画面に変わっていたら、
移行が完了したという事になります。
この際、httpsではWordPressブログが表示されない状態です。
httpでしかアクセス出来ない状態になってますので、
ここまで来たら、今度は、移行先サーバのSSL設定をONにします。
step
10移行先サーバで、ドメインをSSL設定
さて、今度は、httpsでアクセスできるように、移行先サーバのSSL設定ページに行きます。
例えば、Xサーバなら「SSL設定」に行きます。
「独自SSL設定追加」タブを選び、「www」のドメインを選んで「追加する」を押します。
(wwwなしのドメインでも、wwwを選べばSSL化されます)
上の写真のように、表示されれば、OKです。
これも最大1時間程度との事でしたが、私の場合は30分程度でSSLがONになりました。
これも確認の仕方ですが、
自分のブログにアクセスすると、
httpでアクセスしても自動的にhttpsにリダイレクトされるようになり、
という表示になるようになります。ただ管理画面には引き続きアクセスできます。
なので、ここで、Really Simple SSLプラグインをONにします。
step
11Really Simple SSLプラグインをONにして、表示を確認
では、ここで、一旦Really Simple SSLを有効化します。
(WordPressのプラグイン一覧画面から有効化)
まだ、ネームサーバが不安定なので、Really Simple SSLプラグインをONにした直後は、WordPressが表示されなかったり、ちゃんと表示されたりというちぐはぐ状態になります。
全然表示されない場合は、ブラウザのキャッシュを消して、再起動したり、
他のブラウザやスマホなどからも表示出来てるかチェックしてみてください。
だんだんと、全てがちゃんと表示され、https,httpどちらでアクセスしても、httpsにちゃんと飛んで、表示されるようになります。
もし、何度やってもずっと表示されない場合も、
そのまま待ってれば、サーバのSSL設定はもうしてるので、表示されるようになります。
ただ、どうしても管理画面にアクセスしたいのであれば、
また先程のReally Simple SSLをFTPから停止する手順を踏めば、
httpから管理画面にアクセスは可能になります。
これで、ちゃんとサイトが表示されるようになれば、
サーバの移行(引っ越し)完了です!(.htaccessいじってる場合はもう1項目あります)
注意ポイント
管理画面にも警告表示が出ますが、
最後にFTPから編集したReally Simple SSLの
force-deactivate.phpを
force-deactivate.txtに戻してください。
step
12.htaccessに直書きしてる事があれば、それを移行先にも追記
UpdraftPlusは超便利なんですが、難点として、.htaccessやwp-configといったデータまではバックアップしてくれません。
なので、もしリダイレクト設定など、過去直接.htaccessにFTPから直書きしている場合は、
同じ記述を移行先の.htaccessにも手動で追記する必要があります。
万が一誤って間違った情報を上書きしてしまった時のために、
特に移行前ブログの.htaccessはPCの別フォルダなどに
先にダブルバックアップしておく事を強くおすすめします。
私自身誤った上書きでやらかした事があるので、.htaccessやwp-configの自動バックアップ用にBackWPupプラグインもUpdraftPlusと併用してます。
.htaccessを誤って消した、上書きした時の4つの復旧方法
WPサイトのダウンタイムを一切作らないようにするには?
今回紹介した方法だと、どうしても30分前後、(サーバによってはもっと長い)ダウンタイムが発生します。ダウンタイムと言ってもhttpでならサイトにアクセス出来ますが、
ただ、Google検索などにhttpsで登録されてる場合、ご自身でhttpsからhttpにリダイレクトする設定でもしない限り、検索からはアクセスできない状態になります。
一切のダウンタイムを作らず、httpsのままサーバ移行をするとなると、
ネームサーバ設定前からドメインのSSL化に対応しているサーバに引っ越すか、
有料SSLプランなどを使う必要が出てきます。
Xサーバも有料プランを使えば、SSL化のままダウンタイムなしに引っ越しも可能だそうです。(このブログが詳しかった)
サーバ移行も効果的だけど、サイトスピードアップにすごく大事な事!
実際、私が今回移行したWordPressブログも、Sitespeed Insightで測った所、サーバ応答時間が半分になりました。(3秒が1.5秒という感じ)。
ただ、これだけでは、やはりSitespeed Insiteの得点ってそれほど上がりませんでした。
じゃあ、何が大事なのかというと、やはり画像です。
例えば、PNGってJPGより重い事をご存知ですか?
なんでもかんでもPNGで画像を貼ってると、それだけで
サイトスピードは落ちてしまいます。
家でWIFIでネットやってる分には、問題ないのですが、
今はモバイルでのアクセスが過半数を超え、
モバイル通信でサイトにアクセスする場合、
どうしても画像読み込みに時間がかかってしまいます。
それが、サイト速度や離脱率、そしてGoogleの検索順位にも響いてくるので、
画像を軽くする事には力を入れた方がいいです。
なので、画像を圧縮したり、キャッシュプラグインやLazyload系プラグインを入れたりして、しっかり軽量化していく事が一番のスピードアップに繋がります。
詳しくはこちらの記事で解説してます。
【2019】WordPress高速化:効果高い順11選。逆効果になる部分も解説。