普通のレンタルサーバーを使っていたけど、自由度もあるGCPサーバーにwordpress環境を作ってサイトを移行したいけど、具体的にどうしたら一番安全に移動できるんだろう?
こんな方に向けて書いていきます。
ブログを無料で運営できるし、サーバーサイドも細かく勉強できるしGCPを使ってみたいな。ブログサーバーを乗り換えたいなと悩んでいませんか?
実は、今回紹介する手順に沿って行えば、簡単に移行できます。
その理由は「行うべき手順が少ないから」です。
僕は、試行錯誤しながらだったのでいくつかつまずきました。
しかし、その経験から最も楽に移行できる方法を見つけましたので、紹介していきます。
本記事の内容
- プラグインを使ったり、ファイルをコピーして移行させる
- ちょっとした不具合の対処
ブログを移行する手順
そんなに躓きそうになるポイントは多くないと思います。
全体の流れをまとめると
- GCPでwordpressサーバーを立てる
- FTPでファイルをコピーする
- データベースをインポートする
という感じになっています。
流れはとても簡単ですよね?
もちろん、自分はこのFTPソフトを使うよーとか全然自由です。
人によっては1時間もかからずにやることが終わって、コピー待ちとかなるかもしれませんね。
GCPでwordpressサーバーを立てる
私はこちらの記事を参考にしながら、導入していきました。
FTPソフトとプラグインを使いバックアップを取る
WinSCPのソフトでなくても、SFTPやFTPで接続できるなら何でも大丈夫です。
WinSCPソフトを使ってレンタルサーバー、GCPサーバーに接続
レンタルサーバーと接続
レンタルサーバに接続するときは、あなたの借りているサーバーの会社のマニュアルを見たり、検索してみてください。
「〇〇〇サーバー WinSCP 接続」と検索すれば、大抵のサーバーは解決できると思います。
GCPサーバーと接続
接続していく流れとしては、こんな感じです。
- 公開鍵と秘密鍵をPUTTYgenで設定する
- GCPのVMインスタンスで公開鍵の設定をする
- WinSCPで秘密鍵を用いたSCP接続をする
PUTTYgenの設定
今回はスムーズに事を運ぶためにPUTTYgen(公開鍵、秘密鍵作成ツール)を使っていきます。ここでインストールしておいてください。
開いたらこんな画面が出ると思います。
そうしたら、「generate」ボタンを押すと、作成が始まります。
ウィンドウの上半分にある意味不明なコード(とても大切)がたくさんあるところをコピーしてメモをしておきましょう。
上の画像ではNo.keyと表示されていますが、本来はここに書いてあります。
また、この画面は後でも使うのでタブは閉じないようにしましょう。
GCPのVMインスタンスより公開鍵の設定をする
GCPの管理ページからナビゲーションメニューからCompute EngineのVMインスタンスのページを開きます。
そしたら自分の作ったインスタンスの名前をクリックして詳細ページまで行きます。
次は、編集を押してページの真ん中あたりまでスクロールします。
そして「ssh認証鍵がX個あります」の「表示して編集する」をクリックします。
そうしたら、「公開SSH認証鍵を入力」というところに先ほどコピーした公開鍵をペーストします。
あとは、ページの1番下まで行き保存をしましょう。
WinSCPからSCP接続をする
WinSCPを起動しましょう。
起動したら、新しいセッションをクリックします。
次は、「新しいサイト」をクリックして、「転送プロトコル」をSCPに変えます。
その次に「ホスト名(先ほど見たVMインスタンスで確認できる外部IPアドレス)」を入力します。
ユーザー名は、PUTTYgenのKey commentのところに書いてあるものです。
そして、プライベートキーを保存しておきましょう。
WinSCPでの設定に戻ります。
設定から「SCP/シェル」の「シェル」を画像のように「sudo su -」と変換をします。
同じく設定から「認証」の「秘密鍵」に保存したプライベートキーのファイルの場所をセットしておきます。
あとは、OKを押してログインしてみましょう。
これで、接続が完了すると思います。
ファイルをコピーペーストする
レンタルサーバーのほうにある「wp-content」内にある「uploadsファイル」と同じく「themes」ファイルをコピーして、GCPサーバーの「home/自分のメールアドレスの@より前の部分/apps/wordpress/htdocs/wp-content」内にペーストしてください。
念のため、GCPサーバーにもとからある「uploads」ファイルと「themes」ファイルを「past」というフォルダを作って移動しておきましょう。
これで、もしもの時はもとに戻せます。
標準のエクスポートツールからエクスポートをして、GCP側のサイトでインポートをする
画像のようにエクスポートをしてください。
そうしたら、GCP側のサーバーで先ほどエクスポートしたファイルをインポートをしましょう。
「All-in-One WP Migration」プラグインを入れてデータベースをエクスポートする
まずは、このプラグインを有効化しましょう。
そうしたら、下記の画像のように設定してエクスポートをしましょう。
あとで、このエクスポートをしたファイルを使いますので、分かりやすいところに保存しておきましょう。
データベースをインポートする
GCPサーバーの外部ipアドレスをブラウザのURLを入力するところに入力しましょう。
そしたら、GCPサーバーで立てたwordpressのページが出ると思うのでログインしましょう。
そしたら、All-in-One WP Migrationプラグインを追加して有効化しておきましょう。
今度は、エクスポートではなく、インポートを押して先ほどダウンロードしたデータベースをインポートしておきましょう。
これで完了です。あとは、データのコピーが終わるのを待つだけです。
お疲れさまでした。
移行が完了するまでの時間
完全に移行が終わるまでの時間は1日かかっています。
というのも、作業量が多いのではなく、データを移行させたりするのにとても時間がかかるからです。
私は、夜に作業を始めて、データの移行中は寝てました。そして朝に続きをやるという形でやりした。
はまったこと
ここからは、自分が事故ってしまったことを修正するために頑張ったことです。
ブログ移行前はSSL化できていたけど、移行後はブラウザに「保護されていません」と出る
サイトが新しくなっているということは、wordpress内の画像やリンクのURLが「http」になってしまっているのではないのか、とやってみました。
一括変換プラグインでhttp://ipアドレスをhttps://サイトアドレスに変換
こちらの記事を参考に導入して試してみましたが、うまくいきませんでした。
前のサイトからバックアップをしておいたデータベースを再度インポートしてみた
とりあえず、もう一度インポートしたら治りました。
実は、私が説明しているやり方と違って、データベースのインポートを最初にしていました。
なので、SSL化する前の設定がそのまま残ってしまっていたところがあるのではないかと思います。
Bitnamiバナーが画面の右下に表示されるから消したい
こちらの記事を参考にしたら、元に戻りました。
オフラインが表示されて下書きの保存や、ブログの更新ができない
下書きの保存に関しては、以下のURLが参考になったので、これをもとに変換してみました。
これで、やっとうまくいきました。
画像をアップロードできない
僕の場合は、「GCPサーバーに画像を保存しておく」ことができませんでした。
おそらく、「uploadsファイル」のアクセス権限がないからできないんだろうなと思い、WinSCPで「uploadsファイル」の画像が保存されているフォルダのプロパティから書き込み設定(パーミッションの部分にすべてチェックつける)を変えました。
必ず、FTPソフトを活用したりして、元のパーミッション設定に戻しておきましょう。
まとめ
以上、移行方法とつまずいたところでした。
この方法でやればほぼ確実に移行することができます。
ぜひ、移行する際は参考にしながら、気をつけてください。