以前、WindowsのxamppとMacのMAMPのWordPressローカル環境をDropboxで同期する方法の記事をアップしました。
時は流れ、xamppとMAMPという異なるパッケージで同期していると原因不明のトラブルに悩まされ、xamppでローカルサーバーをONにしてDropboxのデータが更新されると以降MAMPではエラーが発生してローカルサーバーを立てられないなどの問題が生じました。
MAMPはWindows版も存在するため、今回いっそのことMAMPで統一のうえで、ローカル環境をクリーンインストールすることにしました。
対象の読者の方と前提
対象の読者
- MAMPによるWordPress開発環境を少なくとも1台のPCに導入されたことがある方
- 2台以上のPCによりWordPress開発環境を同期したい方
前提
- MAMPおよびWordPressをインストール済み
- Dropboxをインストール済み
-
Dropbox内に、下記のようなディレクトリ構造でapacheのデータを入れるフォルダ(
htdocs
)と、MySQLのデータを入れるフォルダ(mysql
)をコピー済み(下記はWindows版を想定しています)C:\MAMP\htdocs
↓
C:\<Dropboxへのパス>\Dropbox\AppData\MAMP\htdocs
C:\MAMP\db\mysql
↓
C:\<Dropboxへのパス>\Dropbox\AppData\MAMP\mysql
へ
環境の構造
ざっくりと環境の構造を図に示すと、以下のようになります。 要するに、Windows PC、Mac PCともにそれぞれ MAMPをインストールしたうえで、apacheとMySQLのデータのみDropboxに取得しに行くという、単純な構造です。
Windowsの設定
まず初めに、この項目の前提となる、私の環境は以下のとおりです。
- OS
- Windows 10 Pro 64ビット
- MAMPのバージョン
- 5.0.3.3910
- MAMPのインストール先
- C:\MAMP
MAMPのドキュメントルートを変更するとともに、シンボリック・リンクというものを使って、デフォルトではXAMPPのインストール先に存在するmysqlのデータが入っているフォルダを、代わりにDropbox内に作ったフォルダにリンクする方法で行います。
※ドキュメントルートとは、Webサーバ(HTTPサーバ)やFTPサーバが外部に公開するファイルなどが置かれたディレクトリ(フォルダ)のことです。そのディレクトリにあるファイルおよび、その下の階層にあるファイルやディレクトリが公開されます。
シンボリック・リンクとはそもそも何!?という方は下記をご覧ください。
ドキュメントルートの変更
-
メニューバーの[MAMP]→[Preferences…]を選択します。
-
[Server]タブを選択します。
デフォルトのドキュメントルートは以下のとおり
C:\MAMP\htdocs
です。 -
ドキュメントルートを以下のように
C:\<Dropboxへのパス>\Dropbox\AppData\MAMP\htdocs
に変更します。
mysqlフォルダのコピーとシンボリックリンク作成
-
C:\MAMP\db\mysql
を適当にリネームする →削除しても問題はないが、念のためリネームしてバックアップを残しておくことが望ましいです。 フォルダ名の最後に「_bk」などと適当なサフィックスを付けるのが分かりやすいでしょう。 -
検索ウィンドウで「cmd」と入力し、現れた「コマンド プロンプト」を右クリック、「管理者として実行」を選択します。
-
シンボリック・リンク作成のコマンドを入力します。 コマンドは
mklink /d "リンク元フォルダ" "リンク先フォルダ"
です。 先述の通り、Cドライブ直下にMAMPをインストールし、Dropbox内にも同じ階層構造でデータフォルダを作成していれば、
mklink /d "C:\MAMP\db\mysql" "C:\<Dropboxへのパス>\Dropbox\AppData\mysql"
というコマンドになります。正しくコマンドを実行すると、
のように「〜のシンボリック リンクが作成されました」と表示され、実際に下記のようにエクスプローラでも矢印つきのアイコン(シンボリックリンク)が作成されていることが確認できます。
これでWindows側の設定は完了です。 簡単でしたね。
Macの設定
【補足】プリインストール版ApacheとPHPを停止
Dropboxによる環境同期に直接関係ない話題となりますが、macOSには最初からApacheとPHPがインストールされています。
しかし、MAMPはこのプリインストール版を使わず「別のApacheとPHP」をハードディスクの別の場所にインストールします。
よって、MAMPはプリインストール版のApacheと競合しないように、デフォルトではポート「8888」を使用するように設定されています。
Webサーバーの標準ポートは「80」です。
MAMPでもポート80を使えるほうが、URLがシンプルになり何かと楽なので、あらかじめ「システム環境設定」で「Web共有」をOFFにすることで、プリインストール版のApacheとPHPを停止しておきましょう。
システム環境設定 > 共有と進み、
上記のように、「インターネット共有」がOFFになっていることを確認します。
そして、MAMPのデフォルトではポート「8888」になっているところを、ポート「80」に変更します。
[MAMP]→「Preferences」→「Ports」タブで「80 & 3306」ボタンを押すだけでOKです。
ドキュメントルートの変更
Windows版と同様に、htdocsのドキュメントルートを変更します。
[MAMP]→「Preferences」→「Web Server」タブを開きます。デフォルトは以下のようになっています。
これを、Dropbox内のhtdocsディレクトリに割り当てます。
「Select」ボタンから、上記のように設定します。
※macOS Ventura 13.1から、Dropboxのフォルダの保管先が/Users/YOURNAME/Dropbox/
から/Users/YOURNAME/Library/CloudStorage/Dropbox/
となりましたのでご注意ください。
mysqlデータへのシンボリックリンク作成
htdocsだけでなくMySQLもDropboxのデータを割り当てる必要がありますが、htdocs のようにドキュメントルートをお自由に選べるわけではなく、必ず/Applications/MAMP/db/
の中にあります。
なお私の場合、フォルダ名は「mysql57」という名前になっていました。
というわけで、Windowsの時と同様に、フォルダ名の最後に「_backup」などと付け足して念のためバックアップとして残しておきます。
さて、/Applications/MAMP/db/
の中の「mysql57」を、Dropboxのデータにリンクさせるため、シンボリックリンクを作成します。
「アプリケーション」→「ユーティリティ」→「ターミナル」を起動します。
ターミナルで以下のコマンドを打つと、Windowsと同様にシンボリックリンクを作成できます。
ln -s /〜/リンク先のフォルダ /〜/リンクを設置したい場所
というわけで、今回は以下のように打ち込みます。
ln -s /Users/YOURNAME/Library/CloudStorage/Dropbox/AppData/MAMP/mysql/ /Applications/MAMP/db/
※macOS Ventura 13.1から、Dropboxのフォルダの保管先が/Users/YOURNAME/Dropbox/
から/Users/YOURNAME/Library/CloudStorage/Dropbox/
となりましたのでご注意ください。
実際にターミナルで打ち込んだところの画面です。
コマンド入力して実行しても、特にシンボリックリンクの作成に成功した、などの表示は出ませんが、うまくいっていれば、以下のようにシンボリックリンクが作成されます。
なお、このままでは動きません。シンボリックリンクの名前が参照先のフォルダ名「data」になっているためです。
シンボリックリンクは自由にリネーム可能なので、今回は元の「mysql57」という名前にしました。
これでWordPressのローカル環境にアクセス可能になりました。
最後に
お疲れ様でした!
やっぱりMacでWordpressの開発環境ができたってのは本当に素晴らしすぎます!
また、こうしてローカルサーバーを設けることで、MarsEditのリアルタイムプレビュー機能をオフラインでも利用することができるようになりました。
これからもどんどん使い倒していきたいと思います!
※運用時の注意点として、ローカル環境を使用した後は、きちんとMAMPで「Stop Server」を押して、その後のDropboxの同期を完了させましょう。