30分でWordPressを引越し・他のサーバに引越しや開発環境の構築手順
2017/03/11
WordPressを速いサーバへ引越しをする
WordPressが速く動くサーバを求め実験
ロリポップのサーバは Googleの Page Speed Insightsでは、サーバのレスポンススピードが遅いと言われてしまいました。
「サーバーの応答時間を短縮する」
「お使いのサーバーは 1.8 秒で応答しました。」
そんなわけで、サーバ自体を変えることを想定して、8個のレンタルサーバを対象にこのエス技研ブログをコピーして実際にどれくらいのスピードになるかを実験してみました。
その結果は「実測比較・レンタルサーバスピード選手権!WordPressが速いのは?」に記載しています。
結論から書くと、ヘテムル、X10、さくらプレミアムあたりがよさそうです。
ただ、月額費用を考えると、ロリポップも悪い選択じゃないということも確認できましたね。
実験を行うために行ったWordPressの引っ越し作業手順
で、この記事では、その実験を行うために必要となった WordPressを他のサーバにコピーをして動かすための手順を解説します。
この仕組みを理解できれば、他のサーバに WordPressを本格的に引越しする方法も理解できます。
WordPressを他の環境に持っていくのは結構簡単ですよ。
【手順】
1.現行サーバにあるファイル一式を取得
2.ファイルの情報を修正
3.新しいサーバにファイルをアップロード
4.データベースをインポート
5.データベースの値を変更
1.現行サーバにあるファイル一式を取得
まず、サーバにある WordPressのファイルをダウンロードします。
WordPressのファイル一式を取得するには、BackWPupでバックアップファイルを作成する方法がおススメです。
BackWPupでのバックアップ方法については、「BackWPupでバックアップ・全体バックアップ具体的設定例」に記事を書いていますので参考にしてください。
BackWPupを使わずに、普通に FTPで全ファイルをダウンロードしてきても何の問題もないのですが、BackWPupを使うとデータベースも含めて必要な全ファイルを取得し、zipで圧縮してくれますのでダウンロードしてくる時間が短縮できて便利ですね。
また、BackWPupを使わずにバックアップする場合は、データベースのバックアップも行います。
phpMyAdminで全てのテーブルを選択してエクスポートします。
2.ファイルの情報を修正
取得したファイルの中で修正が必要なファイルを修正します。
BackWPupでファイルを取得した場合は、zipファイルを解凍してから修正をします。
修正が必要なファイルは「/.htaccess」「/wp-config.php」で、いずれも WordPressが入れてあるルートフォルダにあるファイルです。
まず、「/.htaccess」を修正します。
1 2 3 4 5 6 7 8 9 10 |
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
WordPressでは URLを任意に処理できるよう .htaccessには上記のような記述があります。
これの 8行目を修正します。
修正前
RewriteRule . /index.php [L]
修正後
RewriteRule . /blog/index.php [L]
上記の例は、修正前は「http://blog.s-giken.net/」の様にドキュメントルートに置いてあった WordPressを「http://s-giken.xsrv.jp/blog/」のようにサブフォルダの中に入れて確認することを想定しています。
移動先もドキュメントルートならばここの修正は必要ありません。
続けて、「/wp-config.php」を修正します。
私の場合は 22行目~ 33行目でしたが、WordPressのバージョンによっては多少違うかもしれません。
データベースの接続情報が記述してある箇所ですので、新しく設定するサーバの情報に基づいてそれぞれ変更を行います。
ちなみに、バリューサーバの様に MySQLのホスト名が「localhost」の場合もあります。
1 2 3 4 5 6 7 8 9 10 11 12 |
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define('DB_NAME', 'wordpress_db'); /** MySQL データベースのユーザー名 */ define('DB_USER', 's-giken_user'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'password'); /** MySQL のホスト名 */ define('DB_HOST', '11.22.33.44'); |
3.新しいサーバにファイルをアップロード
修正を行ったファイルも含め、全てのファイルをサーバにアップロードします。
ダウンロードしてくるときは zip圧縮すると早かったのですが、アップロードするときは解凍された状態のファイルをアップロードします。
この際、画像ファイルなどのファイル名に全角文字が使われている場合は注意が必要です。
WordPressの場合は、「メディア」で気軽に全角文字のファイルをアップロードできてしまいますので、知らず知らずのうちに全角文字のファイルをサーバにアップしている場合があります。
通常の運用では特に問題にならない全角のファイル名も、サーバからダウンロード、アップロードする場合に問題になってきます。
WordPressで扱う文字は UTF-8で処理されていますので、同じくファイル名も UTF-8でアップロードする必要があります。
アップロードした画像が表示されない場合などは、日本語ファイルの文字コードを確認してみてください。
WinSCPでファイルの文字コードに UTF-8を指定してアップロードする場合は下記のサイトが参考になります。
http://synclogue-navi.com/winscp-encode
また、BackWPupでバックアップを行った場合は、フォルダの中にデータベースの情報の SQLファイルなども入っていますのでそれはアップロードしない方が安全です。
4.データベースをインポート
データベースをインポートします。
データベースのインポートは、おおよそレンタルサーバにはデータベース管理ツール phpMyAdminが用意されていると思いますので、そこからインポートします。
BackWPupでファイルを取得した場合は、WordPressのルートフォルダにある「******-***.sql」と言った感じの SQLファイルをインポートします。
5.データベースの値を変更
インポートしたデータベースのレコードを修正します。
情報の変更は phpMyAdminで行います。
変更するテーブルは「wp_options」です。
修正するのは、「option_name」の項目が「siteurl」「home」および「recently_edited」のレコードの「option_value」に書かれている値です。
実際に見てもらえれば分かると思いますが、「siteurl」「home」にはサイトの URLが記載されていて、「recently_edited」にはファイルのパスが書いてあります。これを修正します。
「siteurl」「home」の方は新しいサイトの URLを記述すればいいだけですので問題ありません。URLの最後の「/」はないものが標準のようですが、ある、なしはあまり気にしないでよさそうです。
「recently_edited」は少し仕様の理解が必要です。
1 |
a:5:{i:0;s:60:"/home/s-giken/wp-content/plugins/addquicktag/addquicktag.php";i:1;s:49:"/home/s-giken/wp-content/themes/sgiken/header.php";i:2;s:48:"/home/s-giken/wp-content/themes/sgiken/style.css";i:3;s:49:"/home/s-giken/wp-content/themes/sgiken/single.php";i:4;s:45:"/home/s-giken/wp-content/themes/sgiken/ad.php";} |
「recently_edited」の項目は具体的には上記のように書かれていて、
i:0;s:60:"/home/s-giken/wp-content/plugins/addquicktag/addquicktag.php";
これで一つのまとまりです。
この部分をそれぞれ新しいサーバのものに書き換えていきます。上記の場合は 5ファイルのパスが書かれていますので、それぞれ修正を行います。
さらに、上記のように
/home/s-giken/wp-content/plugins/addquicktag/addquicktag.php
この部分の情報として「i:0;s:60:」があるわけですが、この一番最後の「s:60:」の部分が文字数を表していますので、ファイルのパスを書き換えた場合は、ダブルクォートで囲まれている部分の文字数が何文字なのかを数えて修正をします。
ここで解説している手順は、データベースにインポートしてから phpMyAdminによって値を修正する方法を紹介していますが、SQL文のテキストを修正してからインポートしても問題ありません。
また、プラグインによっては必要なファイルのパスをテーブル「wp_options」に保存している場合もありますので、それを修正する必要があります。
テーブル「wp_options」はせいぜい 300~500件程度のレコードですので、上から順番に見ていく、もしくは、phpMyAdminの「検索」機能を使ってパスが書かれている箇所がないかどうかを確認します。
例えば、この記事の最初でファイルをダウンロードする際に使用した「BackWPup」ですが、バックアップのログを保存する場所の情報が「backwpup_cfg_logfolder」の項目に記述されています。
BackWPupを正常に動作させるためにはここも変更をしておく必要があります。
BackWPupは、単にパスが記述されているだけですが、先ほど説明したように文字数を設定する必要な場合もありますので、状況に合わせて文字数の値も修正しておきましょう。
これで WordPressの引越しの設定は終了ですので、WordPressをアップロードしたフォルダにアクセスすると無事にアクセスできると思います。
その他の対応内容
WordPressのシステムとしての対応はここまでで終わりなのですが
・各種設定で URLを記述している箇所の修正
・投稿内に URLでリンクを記述している箇所の修正
など、引き続き対応する必要がある箇所があります。
例えば、このブログであれば、グローバルメニューの「Home」のリンクは URLを記述しています。
また、投稿記事内で他の記事へのリンクは全て URLでリンクを記述していますので、それを置換する必要があります。
後者の投稿内のリンクは、「WordPress投稿テキストを検索・置換するSearch Regexの使い方解説」に記事を書いていますが Search Regexを使って一括置換すると便利でしょう。
ドメインも含めて引越しをする場合
お試しではなく本当に引越しをする場合についても説明しておきます。
実際の手順を確認すればわかると思いますが、ドメインが変わらなければ変更するポイントは、データベースの接続とファイルを置く場所のパスの設定だけですので、作業はより簡単になります。
基本的な流れは1~5で変わりません。
ですが、2、5で行う設定情報の変更が下記の箇所だけになります。
2.ファイルの情報を修正
「.htaccess」の設定変更は必要ありません。
「/wp-config.php」のデータベースの接続情報は、サーバによって変わるところですのでここは変更が必要です。
新しいサーバの設定情報に従って変更をします。
もう一つは、
5.データベースの値を変更
テーブル「wp_options」の変更です。
「siteurl」「home」はそのままで OKで、「recently_edited」の値を新しいサーバのパスに合わせて変更するだけです。
もっとも、サーバを引越しをして、ドメインが切り替わるまで動作テストをしない、っていうのはなかなかない選択肢なので、一度レンタルサーバのドメインに切り替えて動作検証をしてから、本番 URLに切り替える。っていう流れになるんでしょうね。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
WordPressで WPtouchを入れてモバイルテーマを「OFF」にしたら元に戻れなくなった
WPtouchを入れてモバイルテーマを「OFF」にしたら元に戻れなくなった。これは「wp_footer」の設定に問題があるからだった。
-
WordPressの 外観のテーマのための関数の並び順
WordPressのカスタマイズの際にテーマのテンプレートを編集しますが、そのテーマファイルの並び順の解説です。
-
WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。
PHPのバージョンを5.6(7系含む)にアップデートしたらプラグイン WP Mail SMTPを利用してSMTPサーバ経由して送信していたメールが送信できなくなった。その原因と対処方法を詳細解説。
-
カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集
カスタムタクソノミーに属するターム(カテゴリ)の一覧を wp_list_categories()関数+ショートコードでウィジェットに編集するサンプルプログラムです。
-
Custom Post Type UIでカスタム投稿を設定・バージョン1.4対応解説
カスタム投稿をプラグインCustom Post Type UIを使って設定する方法を解説。バージョンアップにより設定する項目も増え、より柔軟な設定ができます。
-
get_categories、get_termsでカテゴリとタクソノミーのターム一覧の編集方法
get_categories()関数やget_terms()関数を使ってタクソノミーのタームを取得し検索処理の部品を作るプログラム作りその解説をしています。
-
テキストエディタ秀丸で正規表現による置換の方法の解説
秀丸で正規表現による置換を行うポイントを紹介。置換をしながら特定のキーワードは置換せずに置換結果に残す方法を実例を上げながら解説しています。
-
プラグインが原因で起動しないWordPressを復旧させる方法解説
プラグインが原因で WordPressが起動できなくなった、ログインできなくなった場合の対処方法の解説です。
-
Advanced Custom Fields(ACF)のアドオン・繰り返しフィールドの使い方解説
Advanced Custom Fieldsのアドオン・繰り返しフィールドについて解説。繰り返しフィールドは投稿者が入力フィールドを追加しながら情報を入力できるフィールドを提供。
-
CSV Importerで WordPressにcsvを取込む
WordPressに csvファイルを取り込む CSV Importerの使い方の解説です。