WordPressの本体やプラグインのアップデートをした途端、真っ白な表示になって青ざめたことはありませんか?
本番環境でいきなり実装するのは、リスクが非常にあるため、できればテスト環境で試してから反映したいですよね。
今回は自分のPCへのテスト環境(ローカル環境)構築と実際に稼働中のWordPressをローカルに構築する方法を説明したいと思います。
テスト環境構築構築(Windows)
一番手軽にサーバー環境を用意するならXAMPP(ザンプ)がおすすめ。
XAMPPはApache、PHP、DBがセットになったオープンソースパッケージで導入がとても簡単で無償で使えます。
今回はWindowsの画面で説明を進めますがOSが変わっても基本操作は変わりませんのでご安心ください。
https://www.apachefriends.org/jp/index.htmlにアクセスしてWindows版をダウンロードします。
ダウンロードしたインストーラーファイルをダブルクリックして実行。
ウィルス対策ソフトが入っていると上記メッセージが表示されるので「Yes」で進めます。
実行するとUACに関する警告(Warning)が表示されるので「OK」をクリック。
C:\Program Files(x86)にはインストールせず、設定した場合はmsconfigからUACを無効にする必要がありますのでご注意ください。
※ UAC(ユーザーアカウント制御)はWindowsのセキュリティの仕組み
Setupが開始されますので「Next」
コンポーネントの選択画面では「Apache」「MySQL」「PHP」「phpMyAdmin」は必要ですので選択。その他は適宜追加で「Next」
インストール先フォルダの選択。特別な理由がなければデフォルトの「C:\xampp」
「Next」をクリック
「Next」をクリック
インストールが開始されるので終わるまで待ちます。
「Finish」をクリック
初回起動すると言語の設定画面が表示されます。日本語は無いようなので左側のアメリカ国旗(英語)をチェックして「Save」
「Apache」と「MySQL」の「Start」をクリックしてModule名が緑色になれば正常に起動したことになります。
ブラウザで「http://localhost」と入力して上記ページが表示されればXAMPPのインストール〜起動は完了です。
※ Skypeなど80番ポートを使うアプリケーションが動作していると起動出来ない場合があります。その場合はSkype側のポートを変更してみてください。
データベースの作成
次にデータベースの準備をしていきます。
XAMPP ControlPanelの「Admin」から「phpMyAdmin」が開きます。
上部の「データベース」をクリック。
「データベース」名に本番環境のデータベース名を入力。照合順序は自動にすると「latin1_swedish_ci」になってしまうので本番にあわせてutf8_general_ciなどを選択。
データベースパスワードの設定
デフォルトではパスワードが空のため設定します。
phpaMyAdmin上部の「特権」ー rootの「Edit Privileges」をクリック。
「パスワードを変更する」をクリック。
「パスワードを変更する」のパスワードに新しいパスワードを入力して「実行」。
以上でパスワードの変更が完了です。
なお、デフォルトでphpMyAdminがパスなしになっているのでC:\xampp\phpMyAdmin\config.inc.phpのパスワードも設定してください。
$cfg['Servers'][$i]['password'] = '';
↓
$cfg['Servers'][$i]['password'] = '(設定したパスワード)';
本番環境のデータエクスポート
次に本番環境のデータベースをエクスポートします。
phpMyAdminからエクスポートしたいデータベースを選択ー「エクスポート」「実行」をクリック。SQLファイルを保存。
テスト環境へのデータインポート
本番環境からエクスポートしたSQLファイルをテスト環境へインポートします。
テスト環境のphpMyAdminのデータベースを選択ー「インポート」「ファイルを選択」から先程のSQLファイルを選び「実行」
デフォルトでアップロードできるファイルサイズは2MBしかないので、ある程度運用しているWordPressの場合、容量オーバーでこのようなエラーが表示されるかもしれません。
その場合、PHPのアップロードできるファイルサイズを大きくします。
C:\xampp\php\php.iniを以下のように変更。
671行目あたり
post_max_size=8M
↓
post_max_size=256M824行目あたり
upload_max_filesize=2M
↓
upload_max_filesize=256M
変更後XAMPP Control PanelからApacheの再起動をします。(STOPで停止後START)
ページをリロードしてサイズが反映されていれば、アップロードができるようになります。
問題なくインポートできると「インポートは正常に終了しました。」と表示されます。
WordPressのインストール
公式サイトより最新版のWordPressをダウンロードします(8/3現在はv4.8.1)
ダウンロードしたファイルを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」
という便利なツールがありますのでこちらを使って変更します。
久々に見たところ登録制になっていました。
名前とメールアドレスを入力すると確認メールが届きます。
「Please Confirm Subscription」というメールの「Yes, subscribe me to this list.」をクリックして登録が完了。
もう1通、「Dear (名前) - here’s your Search Replace DB download Link」という件名のメールも届きますので本文のダウンロードリンクよりダウンロードします。
ファイルを解凍すると「Search-Replace-DB-master」というファイル群が出てきますのでフォルダごとWordPressのディレクトリにコピーします。
C:xampp\htdocs\wordpress\Search-Replace-DB-masterにフォルダを設置した場合、ブラウザからhttp://localhost/wordpress/Search-Replace-DB-masterにアクセスします。
- 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/からログインしてみるとテーマファイルが壊れているようでした。
元のテーマファイルを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のテーマ変更時、新しいプラグインの導入時などいきなり本番環境に実装するとトラブルの原因になりますので是非活用してみてください。
なお、この手順を使用したことによるいかなる損害も保証致しません。バックアップなどを行ったうえで自己責任でご使用ください。