UNORTHODOX WORKBOOK

BLOG TOPWordPressMAMPで本番環境のWordPressサイトをデータベースごとローカルに構築する

MAMPで本番環境のWordPressサイトをデータベースごとローカルに構築する

catch-local-mamp-wp-site-all-data

El CapitanにアップデートしたらMAMPがおかしくなってしまったので、これを機に新しいバージョンのMAMPをインストールして、せっかくなのでデータベースごと本番環境のWordPressサイトをローカルに構築した際の覚書です。

サーバーとかデータベースとかに苦手意識があって、何かちょっとでも環境を変えると不安になるので、何をどうしたのか簡単に書き残しておきたいと思います。

MAMPをインストール

MAMPを以下のリンク先からダウンロードしてインストール。現時点での最新バージョンは3.4でした。

https://www.mamp.info/de/

インストールの詳細は、特に難しいこともないので割愛。

インストールされている以前のバージョンのMAMPは、上書きされることなく別名で残るようですが、変に設定等が引き継がれるのが嫌だったので、htdocsフォルダとdbフォルダを退避後、完全に削除してから新しいバージョンをインストールしました。

本番環境のデータを使用するので、既存のhtdocsフォルダとdbフォルダ内のデータは使用しないのですが、念のため退避させておきました。

本番のデータをダウンロード

本番でアップしているWordPressをローカルにダウンロードします。WordPressごとすべてのファイルをダウンロードし、新しくインストールしたMAMPのhtdocsフォルダへ置いておきます。

今回は、複数のWordPressをローカルで構築したいので、ダウンロードしたファイルをすべて「wp1」というフォルダを作成して、そこに入れておきました。つまり、パスは /Applications/MAMP/htdocs/wp1 という感じになります(wp1というのは適当で、実際にはサイト名とかの方が分かりやすい)。

データベースも本番のものをエクスポート(フォーマットはSQL)し、とりあえずどこか適当な場所に置いておきます。

データベースの値を書き換えてインポート

エクスポートしたデータベース(SQL)内には、当然ながら、本番用のドメイン(URL)が多数記載されているので、これをローカル用のURLに書き換えてから、ローカルのサーバーにインポートしていきます。

URLを置き換える

まずは、適当なエディタでデータベースを開いて、以下のような感じで「置換」を行います。

replace

※複数のWordPressを設置しない場合は、/wp1 は不要

もし、本番環境でwordpressとかwpとかのディレクトリに入れていた場合は、ここからさらに以下のように置き換える必要があります。

replace2

※ /wordpress の部分は、実際のディレクトリ名に合わせる

これで保存してエディタを閉じます。

データベースをローカルサーバーにインポートする

URLを書き換えたデータベース(SQL)をローカルのサーバーにインポートします。MAMPを立ち上げて、「スタート」画面から「phpMyAdmin」をクリックし、phpMyAdminを立ち上げます。

mamp-start

下記の通り設定して、新規にデータベースを作成します。データベースの名前は後で必要になるので覚えておきます。

phpmyadmin

新規にデータベースを作成できたら、そのデータベースに、本番からエクスポートし、URLを修正したSQLをインポートします。

phpmyadmin2

上記画面の下の方(切れて見えません)にある「実行」ボタンをクリックしたらデータベースは完了です。

WordPressのファイルを書き換える

WordPressは、[.htaccess] と [wp-config.php] を修正する必要があります。どちらも一番上の階層にあるファイルです。

.htaccessの修正

[.htaccess] に関しては、本番の環境で設置していない、または、htdocsフォルダ直下にWordPressのファイルを置く(ここでいうwp1フォルダを作らない)場合は、多分、無くても大丈夫だと思います。

本番の環境で設置している場合には修正が必要になり、設置してなくても今回のように、ローカルでWordPressのファイルをフォルダに入れる場合には、新たに作成する必要があります。

新たに作成する場合は、以下を丸々コピペしてフォルダ名(赤文字のところ)だけ変更すればOKです。


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp1/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp1/index.php [L]
</IfModule>

# END WordPress

[.htaccess] が設置されている場合には、上記と同じように記載されていると思うので、赤文字のフォルダ名だけ、実際のフォルダ名に変更すれば大丈夫だと思います。

保存して [.htaccess] は完了です。

wp-config.phpの修正

[wp-config.php] は、以下の部分を修正します。赤文字が修正箇所です。コメント部分もそのまま掲載していますので、「ほとんどの場合変更する必要はありません。」という文言は無視してください。

/** WordPress のデータベース名 */
define('DB_NAME', 'wp1');

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

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

/** MySQL のホスト名 (ほとんどの場合変更する必要はありません。) */
define('DB_HOST', 'localhost');

データベース名は、データベースを作成した時につけたものと同一のものにします。その他については、MAMPのデフォルトの設定のままです。もし変更している場合には、MAMPのスタート画面に記載されているので、それを参考に修正してください(以下の部分)。

host-name

[wp-config.php] の修正については、ファイル内にも注意事項として記載されていますが、UTF-8 の BOM なし (UTF-8N) で保存する必要があります。Windowsのメモ帳等は使用しない方がいいようです。

なお、本番環境のデータをそのまま使用しているので、「データベーステーブルの接頭辞」は変更不要です。


以上で本番環境のWordPressサイトを、データベースごとローカルに設置できているはずです。うまくいっていれば、MAMPのスタート画面上部にある「私のウェブサイト」からサイトが表示されるようになります。

複数のWordPressを設置したい場合には、上記の作業を繰り返せばOKです(htdocsにフォルダを作成し、WordPressごとにデータベースも作成する)。

おまけ

ついでに、MAMPの環境をDropboxに共有する方法も簡単に載せておきます。MAMPでは、htdocsフォルダとdbフォルダさえあれば、他のPCと共有することが可能です。

htdocsフォルダを共有

まず、Dropboxに「MAMP」というフォルダを作成し、「アプリケーション」→「MAMP」フォルダ内にある「htdocs」フォルダを、Dropboxに作成した「MAMP」フォルダに移動します(コピーでもいい)。

これだけだとMAMP側が認識できていないので、設定でドキュメントルートを変更します。MAMPの「設定」→「Web サーバ」タブの「ドキュメントのルート」を、Dropbox内の「htdocs」フォルダに指定します。

これで、htdocsに関してはOK。

dbフォルダを共有

続いてデータベースを共有します。データベース(dbフォルダ)の場合は、htdocsのようにドキュメントルートを変更するというような設定がないので、シンボリックリンクを使って共有させます。

ターミナルを開いて、以下のようにコマンドを叩けば、シンボリックリンクがDropboxの「MAMP」フォルダ内に作成されます。

$ ln -s /Applications/MAMP/db /Users/ユーザー名/Dropbox/MAMP

MAMPやDropboxの設置場所がデフォルトのままであれば上記の通りで問題ないと思います。ユーザー名の部分については、適宜、変更してください。

[追記]
データベースをDropboxで共有する場合は、Dropboxにdbフォルダの本体を置いて、MAMP側にシンボリックリンクを作成した方がいかもしれません。

$ ln -s /Users/ユーザー名/Dropbox/MAMP/db /Applications/MAMP

複数のマシンでデータベースを共有する場合は、こちらの方が自然ですね。多分。


以上で完了です。MAMPの環境がDropboxを通して共有されるようになりました(他のPCにも同じようにMAMPをインストールして設定する必要があります)。

MAMPを卒業してVCCWへ移行したいというのが本音ですが、データベースの同期あたりで挫折してしまったため、もうしばらくはMAMPのお世話になりそうです。

ABOUT

it's me

長野県北部を拠点にフリーランスとして活動しています。
Webサイトの制作をメインに、グラフィックデザインなどの制作も行っています。 Twitter / GitHub / About

PAGE TOP