WordPress ローカル環境(Local by Flywheel)からさくらのレンタルサーバへ移行する方法

WordPress

ローカル環境のWordPress(Local by Flywheel)で作ったサイトを、本番環境のさくらのレンタルサーバーへ移行する方法と、手間取った事の自分覚書です。PHPもチンプンカンプンだし、また移行作業が必要な時のために細かくメモしておきます。

スポンサーリンク

ローカル環境(Local by Flywheel)からさくらのレンタルサーバへ移行する方法

使用環境は以下の通りです:

windows10
ローカル環境のWordPress(Local by Flywheel)
さくらのレンタルサーバ スタンダード

1.さくらにログインしDBを新規作成

データベースの設定から「データベースの新規作成」をクリック。

s1

データベース名(任意)を入力し、データベース文字コードが(UTF8mb4)になっているか確認。

注意事項を確認の上、同意にチェックを入れ「データベースを作成する」をクリック。
データベース 一覧に作成したDBが追加されたら完了。

さくらの「データベースユーザ名」、「接続パスワード」は20個まで作れる全データベースで共通です。管理ツール(phpMyAdmin)へのログインにも使用します。

2.ローカルで作成したWordPressフォルダを丸ごとデスクトップにコピー

C:\Users\ユーザーネーム\Local Sites\サイト名\app\public

3.デスクトップにコピーしたアップロード用ファイル「wp-config.php」を修正

先ほどデスクトップにコピーしたフォルダ内の「wp-config.php」の青枠部分を
本番環境(さくらレンタルサーバー)用に修正する。

データベース名: 1、さくらにログインしDBを新規作成するで作成したDB名を入力
データベースのユーザ名: さくらのMySQLのユーザ名を入力
データベースのユーザ名: さくらのMySQLのユーザパスワードを入力
MySQLのホスト名: さくらのデータベースサーバー名を入力
保存する際は、「wp-config.php」内に記載されている通り、必ずUTF-8のBOM無し(UTF-8N)で保存する事。
FFFTPでアップロードする時のモードもUTF-8のBOM無しです。

4.ローカルのWordPressフォルダをサーバへアップロード

WordPressフォルダ(public)をアップロードする為に圧縮(zip化)します。

Windowsの場合は、WordPressフォルダ(public)を右クリック→圧縮でzipを選ぶ事で圧縮できます。
圧縮したファイルを、FFFTP(バイナリ転送モード)でhome/〇〇〇/www直下にアップします。

アップしたら、さくらのコントロールパネルにログインし、右サイドバーの「ファイルマネージャー」をクリックします。

先ほどアップロードした圧縮ファイルを右クリックし、「リモートで解凍」を選択します。

すると、解凍先の選択の確認表示が出ます。
home/〇〇〇/www直下に展開させるので「OK」をクリック。

「OK」をクリックすると、以下のような最終確認が出ます。

解凍先に存在するファイルは上書きされます。よろしいですか?

こう聞かれると、home/〇〇〇/www直下の他のフォルダ(別ドメインで運営)を消してしまうのではないかと少しビビッてしまいますが、他の名前のフォルダは保ったまま、「public」というフォルダが新たに作成され、その中に展開されます。

「はい」をクリックすると、以下のように解凍されました。

home/〇〇〇/www/public

圧縮(Zip)ファイルの解凍時に、エラーが出て解凍できない場合は以下を参考にどうぞ。

さくらサーバのファイルマネージャーで、zipファイルの解凍でエラーが出る場合の対処方法
先日、10年以上運営していた無料ブログをWordPressに移行した時の事です。 ローカル環境のWordPress(Local by Flywheel)でテストし、いざさくらのレンタルサーバにア...
「public」という初期フォルダ名は後から変更可能なので、とりあえずこのままでも、すぐに変更してもOKです。(フォルダを右クリック→名前の変更)

5.ローカルのDBのバックアップファイルを作成

次はローカル環境(Local by Flywheel)のsqlファイルをエクスポートします。

ローカル環境(Local by Flywheel)を起動し、「DATABASE」をクリックし、「ADMINER」をクリックします。

Adminerの管理画面に入ったら、左側の「エクスポート」をクリック。

次の画面で下記のように設定し「エクスポート」をクリック。

すると任意の場所(ダウンロードフォルダなど)にDBのバックアップファイル(local.sql)が作成されます。

次はこれをさくらのサーバーへインポートします。

6.さくらのサーバで新規作成したDBにバックアップファイルをインポート

さくらのコントロールパネルの「データベースの設定」→作成したデータベースの「管理ツールログイン」をクリックする。

(さくらのデータベース共有の)ユーザ名、パスワードを入力し「実行」でログイン。

サイドメニュー(赤囲部分の1)より「1・DB新規作成」で作成したデータベースを選択し、「インポート」(赤囲部分の2)を押す。

「ファイルを選択」から「5・ローカルのDBの・・」で作成したSQLファイルを選択し実行する。

これでローカル環境のDBの内容が、さくらサーバーに作成した空のDBにコピーされました。

ここでサイトを確認すると、トップは表示されましたが個別ページに飛ぶとhttp:/〇〇〇.local/のローカルサイトに飛ばされてしまいます。

これはLocal by Flywheelが「hostsファイル」を変更しているためなので、このままではURLを入力しても自分のパソコンからはローカルサイトが表示されてしまい、実際のウェブ上での確認ができません。

そこで、hostsファイルの修正をしていきます。

7.hostsファイルを修正

hostsファイルは直接修正できないのでデスクトップにコピーします。

hostsファイルの場所はWindowsの場合下記になります。

C:\Windows\System32\drivers\etc\hosts

コピーしたhostsファイルをテキストエディタで開いて、ローカルサイトの記載がある行を削除します。

www無しと有りの2行あります。

保存して、元あった場所に戻して上書き保存します。

しかしこのままではまだウェブサイトの表示が変なので、次はローカル環境下のURLを、本番サイトのURLに置き換える作業をします。

その前に、ブラウザのキャッシュで古いページ(ローカルページ)に飛ばされてる場合もあるので、念のためブラウザの履歴を消しておきます。
この時点でLocal by Flywheelのローカルサイトに変更を加えたら、またhostsファイルが上書きされてしまいます。ローカルサイトが必要のない場合はLocal by Flywheelからサイトを削除します。ローカルサイトを保存しておきたい場合は、ドメイン名を変更しておきます。
ドメインを変更するには、Site Domainの「CHANGE」をクリックして変更します。
個人的には、アップした後に変更を施したい場合のテスト用に残しておいた方が便利だと思ったので、ドメイン名を変更して残しています。

8.データベース内のURLを変換するプログラムを実行

ローカル環境下のURLを、本番サイトのURLに置き換えるには、「Search Replace DB」という無料配布されているプログラムを使うと簡単でした。

「Search Replace DB」をダウンロード

以下のページからダウンロード可能です。
入力したEmailアドレスに、ダウンロードリンクが届きます。

Database Search and Replace Script in PHP | interconnect/it
Search Replace DB is a powerful tool for developers, allowing them to run a search replace against their database where CLI tools or WP plugins can’t work.

ページの中盤ぐらいに下図のようなダウンロード用のフォームがあります。

 

Knowledge checkの内容

  • I accept this script can be a security risk
    私は、このスクリプトがセキュリティ上の危険であるかもしれないことを認める。
  • I understand that this script must not be left in a public facing web server
    私は、このスクリプトをサーバーに残してはならないと理解している。
  • I am a developer and I know what I’m doing!
    私は開発者であり、このスクリプトの機能を理解している。

だいたいこういう内容なので、確認してチェックを入れ名前も入力します。
チェックを入れるとEmail入力欄が表示されるので入力し、 [SUBMIT] ボタンで送信します。するとすぐに入力したEmail宛に2通のメールが届きます。

以下の件名のメールを開くと、文中にスクリプトのダウンロード先へのリンクがあるのでクリックすると、任意の場所にダウンロードされます。

Dear (入力した名前) – here’s your Search Replace DB download Link

「Search Replace DB」をアップロード

ダウンロードしたScriptを解凍し、フォルダごとWordPressサイトのフォルダ直下にアップロードします。

「Search Replace DB」の操作手順

アップロードしたら、サイトのドメインの後ろに /Search-Replace-DB-master/ をつけて Search And Replaceにアクセスします。

例:https://〇〇〇.sakura.ne.jp/public/Search-Replace-DB-master/

1、旧ドメインを入力

画面の1の欄に旧ドメイン(ローカル環境のURL)を入力します。

・Local by Flywheelの場合は初期状態で  http://〇〇〇.local/  

ドメイン入力時には最後の/を入力しないようにする。

間違い× http://〇〇〇.local/
正しい〇 http://〇〇〇.local
2、新ドメインを入力

ここに、本番サイトのURLを入力します。旧ドメイン入力時同様、最後のスラッシュは省きます。

ドメイン入力時には最後の/を入力しないようにする。

間違い× http://〇〇〇.com/
正しい〇 http://〇〇〇.com
3、データベースの情報

データベースは、自動で入力されるのでノータッチです。

4、dry run

実行したらこうなります、というのを表示してくれるのでチェックしてみます。

5、live run

置換を実行します。最終確認画面が出るので、dry runで問題なければOKをクリック。すると一括置換がスタートします。

6、 delete me【重要】

置換が終わったら、このボタンをクリックしてScriptを削除します。このScriptを残したままだと、アクセスされたら攻撃者に一括置換されて大変危険です。

これで、ローカル環境下のURLを、本番サイトのURLに置き換える事が出来ました。

9.記事内リンクを修正

データベース内のURLリンクの修正は完了しましたが、ローカル環境で構築したサイトが他サイトからの移行である場合、記事内の内部リンクが以前のURLとなっているので修正していきます。

新規で作ったサイトでも、内部リンクを設置している場合はそれがローカルのURLになっているはずなので確認・修正していきます。

入れ替えには「Search Regex」というプラグインを使うので、インストールします。

「Search Regex」をインストール&有効化

WordPress管理画面 > プラグイン > 新規追加 をクリックし、キーワードに「Search Regex」と入力して検索します。

「今すぐインストール」をクリックして有効化します。

内部リンクを検索&置き換え

まずは旧ドメインがついた内部リンクを、新サイトのドメインへ置き換えます。

WordPress管理画面 > ツール> Search Regexをクリックします。

「Search pattern」には変更前、もしくはローカルのURLを、「Replace pattern」に変更後のURLを入力します。

「Search」をクリックで、旧ドメイン・ローカルドメインが残っているか確認できます。

「Replace & Save」をクリックで、内部リンクの置き換え完了です。

これでローカル環境から本番サイトへのデータ移行は終了です。

しかしここでまた問題(汗)

トップページは問題ないのに、その他の記事ページやカテゴリーのページだけCSSが適用されていない!!

しかしこれはすぐに解決しました。。

原因は使用している、さくらサーバの独自SSL(SNI SSL)の仕様にありました。

さくらレンタルサーバの常時SSL化プラグインをインストールして実行する事ですぐに解決しました。

こちらにプラグイン「さくらのレンタルサーバ 簡単SSL化プラグイン 」をインストール&有効化する方法を書いています。

さくらのレンタルサーバーでサイトをSSL化~httpからhttpsへ~www無しのドメイン(WordPress)
Webサイト全体をHTTPS(暗号化通信)にする「常時SSL化」というのをよく見聞きします。 他に複数運営しているサイトもすべてhttp://~なのでやらなきゃいけないなと思っていたものの、変更...

他、本番環境にアップ後にやっておくべき事もずらっと覚書。

WordPressのユーザー名(admin)を変更し削除する方法
ローカル環境でWordPressを構築する時に、使うローカル環境によっては最初からユーザー名とパスワードが設定されている場合があります。 例えばInstant WPの場合は Usernam...
Google XML SitemapsをVer4.0.9でSearch Consoleにサイトマップを登録
新しいサイトをグーグルサーチコンソールに登録するも、インデックスされなかったりエラーが出たりで、どうにもスムーズに進まなかった事がありました。 そこでGoogle XML SitemapsをVe...
サイトをhttpからhttpsに常時SSL化した後にやるべきGoogle系の設定
このサイトをhttpからhttpsに常時SSL化しましたが、すでにhttp://のアドレスで登録してあるGoogle系の設定も変更が必要なのか一つ一つ確認する事にしました。今後、他のサイトも順次常時S...
WordPressのドメインを変更したらすぐにやるべき3つの事
当サイトは最初はさくらインターネットで取得したサブドメインで運営していました。 しかしアドセンスが表示されない問題が発生したため、独自ドメインを取得し変更しました。 アドセンスの件はまた別投稿...
ライブドアブログからワードプレスへ引っ越し後のリダイレクト設定方法
ライブドアブログには、ブログのURLを変更したときに新しいURLにリダイレクトしてくれる機能がありました。簡単な設定なので忘れずにやっておきます。 ライブドアブログからWordPressへ301リダ...