#目次
はじめに
[Virtual Hostを有効化](#Virtual Hostを有効化)
[Virtual Hostの設定](#Virtual Hostの設定)
hostsファイルを編集
確認
#はじめに
以前書いたMAMPのバーチャルホストで複数プロジェクトをラクラク管理(方法1)の記事ですが、あの後から何故か「localhost:8005」などにアクセスすると、localhost:8888に返されてしまう現象が発生。
編集したファイルを確認するも問題はなく、挙げ句にはMAMP自体を入れ直してみましたが改善する気配がない。
そこで、前回の方法1とは違ったアプローチを試してみました。
やり方自体は検索すれば適当にヒットするのですが、もしListen 8001~を追加してみたけど似たような症状が起こっても申し訳ないので、こちらに備忘録も兼ねて残しておきます。
#Virtual Hostを有効化
前回の記事と同じく、「applications/mamp/conf/apache/httpd.conf」を開いて、576行目付近の
#Virtual hosts
#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
↑の#
を外して↓のようにコメントアウトしてください。
#Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
#Virtual Hostの設定
こちらも前回の記事と同じく「applications/mamp/config/apache/extra/httpd-chosts.conf」を開いて、末尾くらいに
<VirtualHost *:80>
以下略
</VirtualHost>
<VirtualHost *:80>
以下略
</VirtualHost>
と記述された場所があります。
これを雛形にするので、<VirtualHost *:80> 〜 </VirtualHost>
を末尾に1つ複製します。
複製した<VirtualHost *:80> 〜 </VirtualHost>
の中で書き換えるのは、DocumentName
とServerName
、オプションのErrorLog
とCustomLog
です。
ちなみにオプションは任意なので、いらないのであれば最初の2項目だけで大丈夫です。
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/project-name"
ServerName project-name.local.com
ErrorLog "logs/project-name-error_log"
CustomLog "logs/project-name-access_log" common
</VirtualHost>
DocumentRoot
→ htdocs配下のプロジェクトフォルダを指定してください。
ServerName
→ 「http://指定して文字列」と入力することでDocumentRootで指定したプロジェクトが表示されます。
ここでは「http://project-name.local.com」と入力することで、従来の「http://localhost:8888/project-name」と同じ様にアクセスできます。
ErrorLog
、CustomLog
→ この2項目はオプションです。指定した場所(logsフォルダ以下)に、指定した名前でエラーログファイルが生成されます。
#hostsファイルを編集
ここではターミナルを使って、hostsファイルを編集していきます。
ちなみにターミナルを使いたくない人は、「private/etc/hosts」にあります。
では、ターミナルを起動し、$ sudo vi /etc/hosts
と打ち込んでエンターを押してください。
パスワードを求められるので、入力してエンター。
すると以下のような画面になるはずです。
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
~
~
~
~
~
"/etc/hosts" 12L, 275C
そのままiを押すと、末尾が-- INSERT --
となり、インサートモードに切り替わります。
そうしたら矢印キーとエンターで::1
の次の行に移動して、127.0.0.1 test-project.local.com
と打ち込みます。
test-project.local.comというのは、先程httpd-vhosts.confのServerNameで指定した文字列です。
もしhttpd-vhosts.confで複数追加したのであれば、その分だけ127.0.0.1 ▲▲▲▲
と打ち込んでください。
今回は以下のように入力しました。
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 project-name.local.com
~
~
~
~
~
"/etc/hosts" 12L, 275C
入力したら、esc
キーを押して、そのまま:wq
と入力してエンターで元のターミナルに戻ります。
#MAMPのポート番号を変更
MAMPを起動させて、設定画面のPortsタブを開いて、80 & 3306を押してポート番号を80に変更してMAMPを再起動させます。
#確認
先程のServerNameで指定した文字列をブラウザのアドレスバーに入力してアクセスして表示されていれば成功です。
時折、apacheの反映にタイムラグが発生する時があるので、他のポート番号にリダイレクトされたり、エラーが出たりしたら、MAMPを終了して1〜2分間を空けてから再起動させたり、$ sudo killall -HUP mDNSResponder
でDNSキャッシュをクリアしたり、PCの再起動を試してみてください。
もちろんタイプミスも十分有りえるので、httpd.conf
、httpd-vhosts.conf
、hosts
もしっかり確認してみましょう。