本番環境だけで運用していたWordPress。
投稿をするだけなら問題ないですが、
何か新しい機能を追加するとなると、
重大なエラーが起こる可能性もあります。
そんなとき、本番環境だけですと、
アクセスできない時間ができてしまいます。
アクセスできない時間、メンテナンス時間を最小限にするために、
開発環境を作りたいと思います。
本番環境からの移行の流れ
運用中の本番環境から開発環境を構築する場合、以下の手順で行っていきます。
2.【本番環境】WordPressデータダウンロード
3.【ローカル環境】データベースインポート
4.【ローカル環境】WordPressデータのコピー
5.【ローカル環境】設定変更
何をしているのか簡単に言うと、
必要な情報を本番環境から取得し、それをローカル環境に移動。
本番環境とローカル環境との異なる部分をローカル環境に反映させる。
ということです。
なお、開発環境はすでに構築済みの前提で、記載します。
では、順番にやっていきましょう。
【本番環境】データベースエクスポート
稼働中の本番環境のデータベースを、取得したいと思います。
データベース作成手順
①サーバにログインする。
②以下コマンドで、MySQLサーバにログインする。
- mysql -u root -p
オプション | 説明 |
---|---|
-u | ユーザー名を指定する |
-p | パスワードを指定する |
③「Enter password:」と表示されるので、rootユーザのパスワードを入力し、Enterキーを押す。
結果
④(任意)以下コマンドを発行し、データベースが存在していることを確認する。
- show databases;
結果
⑤以下コマンドを発行し、サーバか抜ける。
- exit
結果
⑥以下コマンドを発行し、指定したDBの情報を、指定したファイル名で出力する。
- mysqldump –databases DB名 > 出力ファイル名.sql -u root -p
結果
⑦出力したファイルをFTPなどを使い、ダウンロードする。
【本番環境】WordPressデータダウンロード
DBのデータがダウンロードできたら、画面に表示するためのPHPファイル等をダウンロードします。
WordPressデータダウンロード手順
①WinSCP等を使い、サーバにログインする。
②本番環境のフォルダを選択し、ダウンロードをクリックする。
③ダウンロード先を選択し、「OK」をクリックする。
今回は、フォルダ全部をダウンロードしたため、時間がかかりました。
運用を始める前に、作っておくべきですね💦
【ローカル環境】データベースインポート
本番環境から取得したデータベースのデータを開発環境に移行しましょう。
DBデータインポート手順
①XAMPPで、MySQLのサービスを開始する。
②XAMPPで、Apacheのサービスを開始する。
③XAMPPのMySQLのAdminボタンをクリックする。
もしくは、ブラウザから以下にアクセスする。
④右ペイン左上のメニューボタンをクリックする。
⑤開いたメニューから「インポート」をクリックする。
⑥インポートするファイルを選択し、他のオプションはそのままに、
画面下部の「実行」ボタンをクリックする。
⑦正常にインポートが完了したことを確認する。
【ローカル環境】WordPressデータのコピー
次は、本番環境から取得したPHPファイル等をXAMPPの環境に移動させます。
【ローカル環境】設定変更(データベース)
DBは移行しただけですと、接続先が本番環境のままです。
この接続先をローカル環境に向くように変更します。
phpmyadminで作業をしていきます。
DB設定変更手順
①インポートしたDBを選択し、メニュー>SQLをクリックする。
②入力欄に以下を入力し、「実行」ボタンをクリックする。
UPDATE `wp_options` SET option_value=REPLACE (option_value,'〈本番環境のドメイン名〉','localhost/〈開発環境のフォルダ名〉'); UPDATE `wp_posts` SET guid=REPLACE (guid,'〈本番環境のドメイン名〉','localhost/〈開発環境のフォルダ名〉'); UPDATE `wp_posts` SET post_content=REPLACE (post_content,'〈本番環境のドメイン名〉','localhost/〈開発環境のフォルダ名〉'); UPDATE `wp_postmeta` SET meta_value=REPLACE (meta_value,'〈本番環境のドメイン名〉','localhost/〈開発環境のフォルダ名〉');
変更箇所 | 説明 |
---|---|
〈本番環境のドメイン名〉 | ドメインはこのサイトであれば「nekopress.castelodelego.org」です。 もし、このドメインの下に移行元のWordPress以外のフォルダがある場合、 移行対象のフォルダを含めて指定します。 例)nekopress.castelodelego.org/WordPress |
localhost/〈開発環境のフォルダ名〉 | 移行したフォルダ名を指定します。 例)localhost/WordPress_dev |
③完了したことを確認する。
【ローカル環境】設定変更(Wordpress設定ファイル)
WordPressに接続するDBのユーザ、パスワード情報等は、
WordPressの設定ファイル「wp-config.php」上に記載されています。
この部分を変更しないと、
本番環境のホスト上のDBに、本番環境のユーザ、パスワードでアクセスしようとしてしまい、
次のようなデータベース接続確立エラーが表示されてしまいます。
そのため、ATOMなどのテキストエディタを使って編集します。
環境設定変更手順
①ATOMを開き、移行したWordPressデータのフォルダを開く。
②以下ファイルを開く。
③wp-config.phpのバックアップを取得する。
④以下のとおりに変更し、保存する。
/** WordPress のためのデータベース名 */ define('DB_NAME', '〈DB名〉'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'root'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', '〈rootユーザーのパスワード〉'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost');
【ローカル環境】設定変更(Webサーバ)
DBサーバに接続するための設定は終わりましたので、
今度はWebサーバの設定を変更していきます。
本番環境とディレクトリ構成が異なるため、 ローカル環境のディレクトリ環境を見に行けるよう、設定を変更します。
変更対象は、ディレクトリ単位で設定を行えるファイル.htaccessです。
.htaccess変更手順
①ATOMを開き、移行したWordPressデータのフォルダを開く。
②以下ファイルを開く。
③.htaccessのバックアップを取得する。
④以下のとおりに変更し、保存する。
RewriteEngine On RewriteBase / RewriteRule ^/<開発環境フォルダ名>\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /<開発環境フォルダ名>/index.php [L]
【ローカル環境】稼働確認
では、移行した環境に接続できるか確認しましょう。
以下アドレスでアクセスしてみます。
でも、トップ、固定ページ、デフォルトの投稿ページは問題なく表示されますが、
カスタム投稿は以下のようなページがされてしまいました💦
う~ん💦
と、とりあえず、最低限の部分にはアクセスできることが確認できました。
今度はこのエラーへの対応をしていきたいと思います。
まとめ
いかがでしたでしょうか?
本番環境で、モジュール等をリリースする前に、開発環境で確認をし、
エラーで焦ることなく、本番環境を運用できるといいですね。