PHP

MAMPでの複数のローカルホストのたてかた!

More than 3 years have passed since last update.

MAMPは、Apache, MySQL, PHP をパッケージとして一括インストールすることができるソフトです。PHPの勉強用やPickles Frameworkの様なPHPベースのCMSを自分のPC上で構築出来ます。

ここではMAMPのインストール方法と複数のローカルホストをたてる時の設定の仕方を書いてみます。


MAMPのダウンロード

以下のMAMPの公式サイトからパッケージをダウンロードできます。

http://www.mamp.info/en/

mamp_003.png

ダウンロードしたMAMP_MAMP_PRO_3.0.5.pkgというファイルをダブルクリックします。↓

mamp004.png

インストーラーの流れにそっていけばインストール出来ます。(MAMP PROがいらない場合は一番最後でカスタマイズを選択すればMAMPのみをインストール出来ます)

"MAMP" の中に "MAMP.app" というファイルがあるので、ダブルクリックで実行してください。

以下のようなダイアログが表示されます。

mamp005.png

「サーバを起動」を実行して左側の「Apacheサーバ」「MySQLサーバ」の状態が赤から緑に変わったことが確認できたら、「スタートページを開く」を実行してください。以下のようなページが表示されればインストール成功です。

mamp006.png


バーチャルホストのたて方

MAMPをインストールすると、デフォルトでは /Applications/MAMP/htdocs/ がローカルディレクトリとして設定されており、ローカルディレクトリは、http://localhost:8888/ でブラウザで表示を確認することができます。

図で説明してみます。↓

mamap_0001.png

しかしこの方法(デフォルト)だとつねに1つのローカルホストしか立てられな事になります。

「これ以外のフォルダでもMAMPが動く様に」複数のローカルホスト(バーチャルホスト)のたて方を以下に書きます。

バーチャルホストの設定は以下2ファイルで行います。


  • /Applications/MAMP/conf/apache/httpd.conf

  • /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf


httpd.conf を設定する

httpd.conf は次のパスにあります。


  • /Applications/MAMP/conf/apache/httpd.conf

mamap_0002.png

このファイルの下の方(およそ569行目あたり)に、次のような記述があります。

# Virtual hosts

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

この2行目の先頭の # を削除して、コメントアウトを解除します。

# Virtual hosts

Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf


httpd-vhosts.conf を設定する

httpd-vhosts.conf は次のパスにあります。


  • /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

開いてみると以下の様になってると思います。これがデフォルト時の設定です。

#

# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/Applications/MAMP/Library/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>

このファイルの一番下に、作成したいバーチャルホスト分以下の記述を追記します。

この例では、 http://localhost:8001/ にアクセスしたら、 /Users/userId/web/localhost_8001/htdocs にあるファイルが表示されるように設定します。

以下のように書けば良いのですが、内容の内訳を説明します。

一番上のListen 8001はこれからどのローカル番号に振るかを最初に決めます。

Listen 8001ならhttp://localhost:8001/でローカルホストを立ち上げる宣言文みたいなもので最初にこの項目は必ず入れなければいけません。

この場合8001番のローカルホストを使う事になるので、

よってその下の<VirtualHost *:8001>も8001が入ります。

その下のDocumentRoot ""<Directory "">""の中は2つともMacの「Users(ユーザー)」から「今回ローカルで使用するフォルダ」までのパスを書きます。

Listen 8001

<VirtualHost *:8001>
DocumentRoot "/Users/userId/web/localhost_8001/htdocs"
<Directory "/Users/userId/web/localhost_8001/htdocs">
AllowOverride All
</Directory>
</VirtualHost>

全体で見るとこんな感じです。↓

#

# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/Applications/MAMP/Library/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>

Listen 8001

<VirtualHost *:8001>
DocumentRoot "/Users/userId/web/localhost_8001/htdocs"
<Directory "/Users/userId/web/localhost_8001/htdocs">
AllowOverride All
</Directory>
</VirtualHost>

上記の設定ができたら、MAMP のコントロールパネルから MAMP を再起動します。

新しく設定したバーチャルホスト http://localhost:8001/ にテストファイルなどを置いて正しく設定ができているか、確認してみてください。

このようにしていけば、例えば「8001」から+1つづつ(8002、8003と)ローカルホストを増やしていく事が可能です。


まとめと参考サイト

今回の記事をまとめるにあたって、「Pickles Framework」さんのサイトを大変参考にさせてもらいました。ありがとうございます。

またMAMPのバージョンですが新しいVer3.xxに合わせて書きました。