MAMPでhtdocs内に複数のローカルホストを作成する方法

MAMPの複数設定

最近個人的にあれこれ試す時にMAMPをよく使うのですが、MAMPは通常「MAMP」フォルダ内にある「htdocs」がローカルディレクトリとして設定されていて、その中に必要となるデータを入れていきます。

この場合、作業しているサイトとは別のサイトを表示させたい時に、一旦「htdocs」内に入れてあったデータを退けて、空いた「htdocs」に表示させたいサイトのデータを入れるという面倒な作業が発生してしまいます。
そのため、今までは「htdocs」内に複数のフォルダを作って、そのフォルダごとに別のサイトのデータを入れていました。しかしやり方としてあまりよくありません。

そこで今回はMAMPの設定で複数ローカルホストをたてられるようにしてみます。設定の流れとしては下記の通り。

  • httpd.confでhttpd-vhosts.confを使えるようにする
  • httpd-vhosts.confで追加のローカルサーバーの設定を行う

ではやってみましょう。

httpd.confの設定

httpd.confの場所は「アプリケーション」フォルダ内の「/MAMP/conf/apache/httpd.conf」にあります。このファイルを編集するのでテキストエディタ等でファイルを開きましょう。

httpd.confの場所

このファイルの574・575行目に下記のような記述があります(MAMPのバージョンによって多少前後する可能性があります)。

# Virtual hosts
#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

この2行目の先頭の「#」を消してコメントアウトします。

# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

「Include」は「包含する」等の意味を持つので、要は「/Application/MAMP/conf/apache/extra/httpd-vhosts.conf」を取り込む設定を行ったわけです。

httpd-vhosts.confの設定

先程のhttpd.confの575行目にも書かれていましたが、httpd-vhosts.confは「アプリケーション」フォルダ内の「/MAMP/conf/apache/extra/httpd-vhosts.conf」にあります。

httpd_vhosts.confの場所

httpd-vhosts.confを開いてファイルの一番下に新たなローカルホストの設定を追加します。
追加するコードは下記の通り(カギ括弧で囲まれている部分が設定する部分です)。

Listen 「ローカル番号」

<VirtualHost *:「ローカル番号」>
  DocumentRoot "「設定したいフォルダのパス」"
  <Directory "「設定したいフォルダのパス」">
    AllowOverride All
  </Directory>
</VirtualHost>  

例えば、ローカル番号は8001番で、設定したいフォルダのパスは「/Applications/MAMP/htdocs/8001_sample」で設定すると下記のようになります。

Listen 8001

<VirtualHost *:8001>
  DocumentRoot "/Applications/MAMP/htdocs/8001_sample"
  <Directory "/Applications/MAMP/htdocs/8001_sample">
    AllowOverride All
  </Directory>
</VirtualHost> 

設定できたら何かファイルを置いて、MAMPを再起動してみて「http://localhost:8001/ 」にアクセスしてみましょう。正しく表示ができていればOKです。

サイトを追加したい場合の手順

この設定が出来ればあとはhttpd-vhosts.confを開いて上記の設定をコピペしてどんどん追加していけばいいわけですが、その時はローカル番号は1ずつ増やしていきます。
特に決まっているというわけではありませんが、その方が管理がしやすいですし、楽です。

だから今回はローカル番号8001で登録しましたが、次追加で登録する時は8002で登録してURLは「http://localhost:8002/」となります。
あとはパスを設定すればその場所が表示されるのですが、このパスはフルパスなので、「/Applications」もしくは「/Users」から始まると思います。もちろん今回設定したhtdocs以外のディレクトリでも指定は可能です。

ちなみに、フルパスをコピーしたい場合はFinderでパスをコピーしたいフォルダを右クリックしてOptionキーを押すとパス名のコピーができます。これをそのままパスの部分にペーストしてやればOKです。

フルパスのコピー

フォルダの管理に関して

いくつもローカルサーバーが立てれるようになるといちいち中身を切り替えなくてよくなるので便利になりますが、同時にフォルダもどんどん増えていって管理が大変になってしまいます。

それに、フォルダの名前を限定しすぎるのも考えものです。
「htdocs内のフォルダを移動する手間」が「httpd-vhosts.confを編集する手間」に変わっただけにすぎないのですから。

そこで、僕の場合は予め「仕事用」「プライベートのサイト用」などざっくりした用途ごとに分けて使う事にしました。

MAMPのhtdocs内
8001_htdocs元のhtdocsのような役割。何でも入れる。
8002_work仕事に関連するデータはここ。
8003_work仕事用2つ目。
8004_privateプライベートで何かしたいことがあればここで行う。
8005_privateプライベート用2つ目

5つあれば足りるでしょうし、これ以上増える場合は流石にフォルダ移動する事にします。
全部のフォルダを「8001_htdocs」「8002_htdocs」「8003_htdocs」のようにする方が便利かもとも考えましたが、何でも入れていいフォルダを幾つも使うと、フォルダの整理がしきれない気がしたのでやめました。
何でも入れていいのは1個で十分な気がします。