MAMPのバーチャルホストで複数プロジェクトをラクラク管理(方法1)


もくじ

はじめに
バーチャルホストとは?
MAMPのバーチャルホストを設定する

はじめに

もしこの記事でうまくいなかい場合は、こちらの記事「MAMPのバーチャルホストで複数プロジェクトをラクラク管理(方法1)」を参考にしてみてください。

バーチャルホストとは?

MAMPで複数プロジェクトを管理している人(初心者限定?)によくあることですが、
「htdocsにindex.htmlやstyle.cssなんかをおいてホームページを仮想環境で制作しましょう!」
という初心者向きの記事を鵜呑みにすると、
「あれ?ということはmampで作れる(管理できる)プロジェクトは1つしか無理なの?」
という疑問に当たります。

そこから次に行く着くのが、
「htdocsの中にプロジェクトごとのフォルダを作って、その中にhtmlとかcssを置けば、localhost:8888/プロジェクト名でいくらでも管理できるじゃん!」
という考えです。

はい、間違いです。
今すぐその認識を捨てましょう。

wordpressじゃなくても良いんですが、生のPHPで現在のURLを取得して、何かしらの判定処理をしようとしたとき、

test.php
$_SERVER['HTTP_HOST']

というコードを使った覚えないですか?

このコード自体はホスト(www.sample.com)を取得するのですが、mamp上で実行すると、「localhost:8888」しか取得できないんです。

「ほしいのは"localhost:8888"じゃなくて"localhost:8888/example"なんだ!!!!」

まさに自分のことなんですが、こんなしょうもないことで躓いてほしくないので、備忘録も兼ねて、ちゃんとした複数プロジェクトの管理方法をここに残します。

MAMPのバーチャルホストを設定する

まずは「/mamp/conf/apache」から「httpd.conf」と「extra/httpsd-vhosts.conf」を開きましょう。

わざわざVSCodeとかで御大層にやる必要もないので、メインのエディターとは別に、軽量なエディターとかがあれば便利です。
自分の場合はCotEditorなるものを使ってますが、まじで起動が早いしメモリも圧迫しないので、普通に文章を書くときなんかはこちらを使ってます。
Mac:https://apps.apple.com/jp/app/coteditor/id1024640650?mt=12
Windows:https://coteditor.softonic.jp/mac

とりあえず、何でもいいので上記2つのファイルを開いてください。

※失敗するとMAMPが死ぬので、この2つのファイルは前もってバックアップしておくこと!!

① httpd.confの

47行目付近の

httpd.conf
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 8888

Listen 8001
Listen 8002
#↑こんな感じで追加

Listen 8888の下にListen 8◯◯◯と必要に応じて追加します。

今回は「htdocs/test」を作り、中にhtmlとかcssを置くことをイメージしてます。
wordpressでもlaravelプロジェクトでも、やることは一緒です。

続けて、576行目付近の

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

のコメントを解除して保存してください。

② httpd-vhost.confの行末に

httpd-vhost.conf
# 普通のサイトの場合はこちら
<VirtualHost *:8◯◯◯>
    DocumentRoot “/Applications/MAMP/htdocs/▲▲example▲▲”
    ErrorLog "logs/▲▲example▲▲-error_log"
    CustomLog "logs/▲▲example▲▲-access_log" common
</VirtualHost>

# Laravelの場合はこちら
<VirtualHost *:8◯◯◯>
    DocumentRoot "/Applications/MAMP/htdocs/▲▲larabel▲▲"
    ErrorLog "logs/▲▲larabel▲▲-error_log"
    CustomLog "logs/▲▲larabel▲▲-access_log" common
</VirtualHost>

を追加します。

※▲▲〜▲▲で囲われたところは任意の文字列に置き換えてください。
logs/にログファイルが生成されます。

8◯◯◯は①で追加した「Listen 8◯◯◯」と同じ番号を、▲▲▲は「プロジェクトごとのフォルダ名」を入力してください。

保存したらMAMPを再起動して、「localhost:8◯◯◯」でアクセスして想定通りの画面が開いたら完了です。

wordpressやec-cubeなどでも同じ用に「htdocs」直下にプロジェクトフォルダを置き、「Listen 8◯◯◯」と「」を追記するだけでいくらでも増やせます。

ec-cubeとかrubyとか、その他のプロジェクトでの記述方法を知りたければ、「mamp 」

マジで乙したー \(^o^)/