さていよいよ既存のサイト、すなわち本番サイト(レンタルサーバで既に公開中のサイト)をローカル環境へ持ってくる作業に取り掛かることにしましょう。ローカル環境を使えば既に公開されているサイトに影響を与えることなく、様々なテストやカスタマイズを思う存分行うことができます。
やるべきことは、Instant WordPress でも MAMP でも XAMPP でも同じです。
大きく分類すれば、この二つになります。
1. 既存データベースの移設
2. 既存 WordPress データの移設
「移設」とは書きましたが、実際やることはレンタルサーバ上のデータをコピーし、ローカル環境に入れてローカル環境用に設定しなおすことです。Jos は MAMP を使うことにしました。
Instant WordPress にも既存サイトを持ってきて使ってみたのですが、どうも動きが重いのです。MAMP のほうが少し軽く動いてくれるので、MAMP を使うことにしました。
既存データベースの移設
実際にやるべきこと:
1. 既存サイトのデータベースのダウンロード
2. そのファイルを MAMP の phpMyAdmin にインポート
3. インポートしたデータベースをローカル用に再設定
既存サイトのデータベースのダウンロード
Jos の場合、レンタルサーバの管理画面に MySQL management という項目があって、そこから簡単にデータベースをダウンロードすることができました。
ダウンロードできたファイルは既に圧縮された xxxxx.zip でした。
お使いのレンタルサーバによって取扱いは異なるかもしれません。詳細はレンタルサーバに確認してください。
ファイルを MAMP の phpMyAdmin にインポート
MAMP の phpMyAdmin に新たに josdatabase という名前のデータベースを作りました。作り方は「ローカル環境の構築2」のページを参照してください。
そこに既存サイトのデータベースをインポートします。データベース名をクリックして、インポートを選択するとこのようなインポート画面が現れます。
そこでインポートするファイル(xxxxx.zip そのまま)を選択して、左下にある「実行」をクリックすればインポートは完了します。
このように書いてしまえば簡単なのですが、実はここに落とし穴があってかなりの時間を費やしてしまいました。
インポートしたデータベースをローカル用に再設定
このデータベースのファイルを開いてみると分かりますが、中に既存サイトの URL である https://www.josholland.nl の記載箇所がたくさんあります。
その部分を全てローカル用のアドレス、例えば http://localhost:8888/jostestdbwp に再設定しなければならないのです。ちなみに jostestdbwp は後述しますが、既存サイトの WordPress データを移設したフォルダ名です。
とあるサイトでは、このローカル用アドレスの設定にテキストエディタを使って一括変換した、とありました。実際同じようにエディタを使って一括変換し、再度 zip ファイルを作りインポートしたのですが、必ずといっていいほどエラーになりました。
素人としてはお手上げでした。原因は分からない、エラーの意味も分からない、解決方法は分からない、ネットで検索してもこれといった原因、解決方法を簡単に見つけることはできませんでした。
既存サイトをローカルでいじるのは諦めるか、と何度か思ったものです。
まあでも、根気よく探せば見つかるものですね。解決策を載せてくれた方には感謝です。
具体的な方法ですが、既存サイトからダウンロードしたファイルをそのままインポート、エラーなくインポートできたデータベースをクリックします。その中の wp_options の 1 siteurl には既存ファイルの URL が入っていますので、それを http://localhost:8888/jostestdbwp に変更します。
下は既に変更した状態です。
もう一つ、先のほうに home というところがあって、そこにも既存サイトの URL が入っているはずですから、それもローカルのアドレスに変更します。
ローカルの phpMyAdmin でやることはこれだけです。
既存 WordPress データの移設
もう一つやらなければならないことは公開済みのサイトの WordPress データをローカルに持ってくることです。データベースの場合と同様にこれら三つを行います。
1. 既存サイトの WordPress データのダウンロード
2. そのファイルを MAMP の htdocs の下に作ったフォルダ内に貼り付け
3. その WordPress データをローカル用に再設定
既存サイトの WordPress データのダウンロード
これは全く問題ないですね。サイトが大きいと時間がかかりますが、ftp を使ってダウンロードしてください。
それを MAMP の htdocs の下に作ったフォルダ内に貼り付け
D:/MAMP/htdocs の下に適当なフォルダ(例えば jostestdbwp)を作って上でダウンロードしたファイルを全て貼り付けます。「ローカル環境の構築2」のページに書いたように新たに WordPress を導入する場合と同じです。
その WordPress データをローカル用に再設定
貼りつけた既存サイトのファイルに wp-config.php がありますが、その中のデータベース名、データベースユーザー名、ユーザーパスワード、ホストネームを以下のように変更します。
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'josdatabase'); /** MySQL database username */ define('DB_USER', 'root'); /** MySQL database password */ define('DB_PASSWORD', 'root'); /** MySQL hostname */ define('DB_HOST', 'localhost'); /** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8'); /** The Database Collate type. Don't change this if in doubt. */ define('DB_COLLATE', '');
データベース名は上で既に作った josdatabase です。
ここまでやれば既存サイトがローカル環境で再構築されているはずです。確認のためにブラウザ上で http://localhost:8888/jostestdbwp にアクセスしてみて下さい。これで既存サイトと同じサイトが表示されれば成功です。
WordPress のダッシュボードには http://localhost:8888/jostestdbwp/wp-login.php にアクセスして、ユーザー名、ユーザーパスワードを入れることによって入ることができます。
さて、皆さんは問題なくできたでしょうか? ダッシュボードも表示され、全てのページにアクセスすることができましたか?
実は難関がさらに二つ待ち構えていました。
さらに二つの問題
1. ダッシュボードにアクセスできない
2. トップページは表示するが、他のページにはアクセスできない
ダッシュボードにアクセスできない
WordPress 初心者、素人ゆえの問題ですが、既存サイトのパスワードをきちんと認識していなかった、サーバが自動作成したパスワードをそのまま使っていたためにパスワードが分かっていなかったのです。恥ずかしい話です。
パスワードを設定しなおすことはできるのですが、いまさら既存サイトをいじるのは面倒なので、何とかローカルのパスワードだけの再設定を考えました。
ネットで検索すること数時間、あるんですね、そんな方法も・・・。
再度ローカル環境の phpMyAdmin データベース josdatabase にアクセスして、その中の wp_users をクリック。そこにある user_pass を再設定します。適当なパスワードを入れて関数は MD5 を選択、そして「実行」をクリックします。
ユーザー名(user_login)のほうも変更でますので、自分の好きなユーザー名にしてください。
これによってパスワードを変更することができました。
あとは http://localhost:8888/jostestdbwp/wp-login.php でユーザー名と再設定したパスワードを入力すればダッシュボードにアクセスできるようになるはずです。
他のページにはアクセスできない
この問題の解決策もネットで探すこと数時間、何とかヒントを得ることができ、やってみたらいとも簡単に解決できました。
やったことは、ダッシュボードの「設定」から「パーマリンクの設定」へ行き、そこで「カスタム構造」を選択して「変更を保存」をクリックするだけです。
パーマリンクの構造がきちんと認識されていなかった、ということのようです。
とにかく時間はかかりましたが、何とか当初の目標を達成することができました。ローカル環境で既存のサイトをいろいろいじってみようと思います。