ウェブと食べ物と趣味のこと

ガジェットレビュー、格安SIMのこと、windows10、迷惑メールネタ、写真ネタなど。困った方の参考になる記事を心掛けます。

WordPressのテスト環境(ローカル環境)構築と本番環境の再現方法

スポンサードリンク

f:id:photoblg:20170829233007j:plain

WordPressの本体やプラグインのアップデートをした途端、真っ白な表示になって青ざめたことはありませんか?

本番環境でいきなり実装するのは、リスクが非常にあるため、できればテスト環境で試してから反映したいですよね。

今回は自分のPCへのテスト環境(ローカル環境)構築と実際に稼働中のWordPressをローカルに構築する方法を説明したいと思います。

テスト環境構築構築(Windows)

一番手軽にサーバー環境を用意するならXAMPP(ザンプ)がおすすめ。

XAMPPはApache、PHP、DBがセットになったオープンソースパッケージで導入がとても簡単で無償で使えます。

今回はWindowsの画面で説明を進めますがOSが変わっても基本操作は変わりませんのでご安心ください。

www.apachefriends.org

f:id:photoblg:20170830225532j:plain

https://www.apachefriends.org/jp/index.htmlにアクセスしてWindows版をダウンロードします。

f:id:photoblg:20170830005342p:plain

ダウンロードしたインストーラーファイルをダブルクリックして実行。

f:id:photoblg:20170830225713j:plain

ウィルス対策ソフトが入っていると上記メッセージが表示されるので「Yes」で進めます。

f:id:photoblg:20170830005450p:plain

実行するとUACに関する警告(Warning)が表示されるので「OK」をクリック。

C:\Program Files(x86)にはインストールせず、設定した場合はmsconfigからUACを無効にする必要がありますのでご注意ください。

※ UAC(ユーザーアカウント制御)はWindowsのセキュリティの仕組み

f:id:photoblg:20170830010609p:plain

Setupが開始されますので「Next」

f:id:photoblg:20170830010630p:plain

コンポーネントの選択画面では「Apache」「MySQL」「PHP」「phpMyAdmin」は必要ですので選択。その他は適宜追加で「Next」

f:id:photoblg:20170830010732p:plain

インストール先フォルダの選択。特別な理由がなければデフォルトの「C:\xampp

f:id:photoblg:20170830010749p:plain

「Next」をクリック

f:id:photoblg:20170830010820p:plain

「Next」をクリック

f:id:photoblg:20170830010936p:plain

インストールが開始されるので終わるまで待ちます。

f:id:photoblg:20170830230437j:plain

「Finish」をクリック

f:id:photoblg:20170830230555j:plain

初回起動すると言語の設定画面が表示されます。日本語は無いようなので左側のアメリカ国旗(英語)をチェックして「Save」

f:id:photoblg:20170830230833j:plain

「Apache」と「MySQL」の「Start」をクリックしてModule名が緑色になれば正常に起動したことになります。

f:id:photoblg:20170830231215j:plain

ブラウザで「http://localhost」と入力して上記ページが表示されればXAMPPのインストール〜起動は完了です。

※ Skypeなど80番ポートを使うアプリケーションが動作していると起動出来ない場合があります。その場合はSkype側のポートを変更してみてください。

データベースの作成

次にデータベースの準備をしていきます。

f:id:photoblg:20170830231851j:plain

XAMPP ControlPanelの「Admin」から「phpMyAdmin」が開きます。

f:id:photoblg:20170830234246j:plain

上部の「データベース」をクリック。

f:id:photoblg:20170830234259j:plain

「データベース」名に本番環境のデータベース名を入力。照合順序は自動にすると「latin1_swedish_ci」になってしまうので本番にあわせてutf8_general_ciなどを選択。

データベースパスワードの設定

デフォルトではパスワードが空のため設定します。

f:id:photoblg:20170831011904j:plain

phpaMyAdmin上部の「特権」ー rootの「Edit Privileges」をクリック。

f:id:photoblg:20170831012109j:plain

「パスワードを変更する」をクリック。

f:id:photoblg:20170831012226j:plain

「パスワードを変更する」のパスワードに新しいパスワードを入力して「実行」。

以上でパスワードの変更が完了です。

なお、デフォルトでphpMyAdminがパスなしになっているのでC:\xampp\phpMyAdmin\config.inc.phpのパスワードも設定してください。

$cfg['Servers'][$i]['password'] = '';

$cfg['Servers'][$i]['password'] = '(設定したパスワード)';

本番環境のデータエクスポート

次に本番環境のデータベースをエクスポートします。

f:id:photoblg:20170830235043j:plain

phpMyAdminからエクスポートしたいデータベースを選択ー「エクスポート」「実行」をクリック。SQLファイルを保存。

テスト環境へのデータインポート

本番環境からエクスポートしたSQLファイルをテスト環境へインポートします。

f:id:photoblg:20170830235904j:plain

テスト環境のphpMyAdminのデータベースを選択ー「インポート」「ファイルを選択」から先程のSQLファイルを選び「実行」

f:id:photoblg:20170831000020j:plain

デフォルトでアップロードできるファイルサイズは2MBしかないので、ある程度運用しているWordPressの場合、容量オーバーでこのようなエラーが表示されるかもしれません。

その場合、PHPのアップロードできるファイルサイズを大きくします。

C:\xampp\php\php.iniを以下のように変更。

671行目あたり
post_max_size=8M

post_max_size=256M

824行目あたり
upload_max_filesize=2M

upload_max_filesize=256M

変更後XAMPP Control PanelからApacheの再起動をします。(STOPで停止後START)

f:id:photoblg:20170831001136j:plain

ページをリロードしてサイズが反映されていれば、アップロードができるようになります。

f:id:photoblg:20170831001459j:plain

問題なくインポートできると「インポートは正常に終了しました。」と表示されます。

WordPressのインストール

公式サイトより最新版のWordPressをダウンロードします(8/3現在はv4.8.1)

ja.wordpress.org

ダウンロードしたファイルをC:xampp\htdocsに解凍。

ディレクトリ構成は表示したいURL(ドメイン)に応じて変えることは可能です。

ドメインディレクトリ
http://localhost/C:xampp\htdocs
http://localhost/blog/C:xampp\htdocs\blog\

※ 今回はバーチャルホストは考慮せず1サイトしか設置しない設定です。

先程解凍したフォルダにあるwp-config-sample.phpをwp-config.phpにリネームして開きます。

DB_NAME、DB_USER、DB_PASSWORDを以下のように変更して保存します。

/** WordPress のためのデータベース名 */
define('DB_NAME', '(インポートしたデータベース名)');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'root');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '(rootのパスワード)');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

ドメイン名の変更

データベースに保存されているドメインは、そのままでは使えないので変更する必要があります。

Database Search and Replace Script in PHP」 という便利なツールがありますのでこちらを使って変更します。

久々に見たところ登録制になっていました。

名前とメールアドレスを入力すると確認メールが届きます。

f:id:photoblg:20170831004800p:plain

「Please Confirm Subscription」というメールの「Yes, subscribe me to this list.」をクリックして登録が完了。

もう1通、「Dear (名前) - here’s your Search Replace DB download Link」という件名のメールも届きますので本文のダウンロードリンクよりダウンロードします。

f:id:photoblg:20170831010030j:plain

ファイルを解凍すると「Search-Replace-DB-master」というファイル群が出てきますのでフォルダごとWordPressのディレクトリにコピーします。

C:xampp\htdocs\wordpress\Search-Replace-DB-masterにフォルダを設置した場合、ブラウザからhttp://localhost/wordpress/Search-Replace-DB-masterにアクセスします。

f:id:photoblg:20170831014649j:plain

  • search/replace 本番のURL(ドメイン)・ローカルのURLを入力
  • database ローカルのデータベース情報を入力。(自動で入っているはず)
  • table 複数ワードプレスのテーブルがある場合は指定するが今回はall tables
  • action dry run(動作テスト)live run(実行)

actionのボタンを押すと置換された情報がテーブルごとに表示されます。

※リプレース後はSearch-Replace-DB-masterはディレクトリごと削除しましょう。画面には「delete me」というボタンもありますのでそこからでも削除は可能です。

本番環境からテスト環境へファイルのコピー(追記)

上記手順ではデータベース(記事)のリカバリーしか行っていませんでしたので各種ファイルもコピーします。

  • テーマ:/(WordPressインストールディレクトリ)/wp-contenst/themes
  • プラグイン:/(WordPressインストールディレクトリ)/wp-contenst/plugins
  • 画像:/(WordPressインストールディレクトリ)/wp-contenst/uploads

トラブル

開くとページが真っ白

今回試してみたところ画面がなんと真っ白・・・。

/wp-admin/からログインしてみるとテーマファイルが壊れているようでした。

f:id:photoblg:20170831015639j:plain

元のテーマファイルをwp-contentsのthemesにコピー、テーマの適用をすると無事表示が確認できました。

パーマリンクが開かない

本番環境 http://hogehoge.comというURLから、テスト環境 http://localhost/wordpress/というように階層が変わった場合でパーマリンクを開くと404エラーになります。

WordPressインストールディレクトリにある.htaccessのRewiteBaseとサイトのRewriteRuleを変更後の階層に修正。

# 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>

ディレクトリが/wordpress/の場合、このように変更することでパーマリンクが動作するようになります。

RewriteBase /wordpress/

RewriteRule . /wordpress/index.php [L]

※ ディレクトリ構成の変更がない場合はこの設定は不要です。

最後に

今回はWordPressのテスト環境(ローカル環境)構築と本番環境の再現方法について紹介しました。

WordPressのテーマ変更時、新しいプラグインの導入時などいきなり本番環境に実装するとトラブルの原因になりますので是非活用してみてください。

なお、この手順を使用したことによるいかなる損害も保証致しません。バックアップなどを行ったうえで自己責任でご使用ください。