MAMPでバーチャルホストを設定するメモ

今更感が強いですが久しぶりにMAMPを使ってバーチャルホストを設定するのにすっかりやり方を忘れていたのでメモ。

MAMP
http://www.mamp.info

MAMPはバージョン6.3です。

httpd.confの編集

バーチャルホストを有効にするためhttpd.confを編集します。

httpd.confの場所

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

604行目あたり

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

コメントアウトを外します。

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

以上でhttpd.confを上書き保存します。

httpd-vhosts.confを編集

次にバーチャルホストの設定ファイルhttpd-vhosts.confを編集します。

httpd-vhosts.confの場所:
/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

ドメイン名でバーチャルホストにアクセスする方法

httpd-vhosts.confにはサンプルが二つ記述されています。

<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>

<VirtualHost *:80>から</VirtualHost>までが一括り。

基本的にDocumentRootとServerNameがあれば大丈夫です。ログを分けたいときはErrorLog、CustomLogも指定するといいのでしょう。

<VirtualHost *:80>
    DocumentRoot "/Users/myhome/Sites/dummy-host"
    ServerName dummy-host.local
</VirtualHost>

hostsファイル編集

ドメイン名でローカルファイルにアクセスするにはもうひと作業。hostsファイルを編集する必要があります。

hostsファイルの場所(Macの場合):
/etc/hosts

ターミナルなどでhostsを開き、

#MAMP virtual host
127.0.0.1 dummy-host.local

を追記します。(1行目はコメントのため不要)

以上です。

ブラウザからdummy-host.localをアクセスして表示されれば完了です。

ポートを変えてバーチャルホストにアクセスする方法

ドメインではなくポートを変えてバーチャルホストを設定することもできます。

httpd-vhosts.confに以下のように追記します。

Listen 8001
<VirtualHost *:8001>
    DocumentRoot "/Users/myhome/Sites/dummy-host"
    <Directory "/Users/myhome/Sites/dummy-host">
        AllowOverride All
    </Directory>
</VirtualHost>

Listen 8001とVirtualHost *:8001は同じポート

DocumentRootとDirectory以下も同じ場所を指定

これでhttp://localhost:8001にアクセスして目的のデータが表示されればOKです。

8002,8003〜と増やすことが可能です。

hostsを編集したりしなくて済むのでこちらの方が手軽かな。

うまくいかない時に疑うこと:

設定しても表示されない時に疑うこと

・confファイルを編集したらMAMPを再起動する
・httpdポートは80
・アンチウィルスソフトのファイヤーウォール(一旦停止して確認してみる)

私の場合Esetのファイヤーウォールが原因のことがよくあります。

Web

Posted by ともろう