私は普段、MAMPを使った開発環境にしており、DropboxにMAMPのhtdocフォルダを設定して常にバックアップをしているのですが、バーチャルホストについていまいち理解できておらず、Laravelの開発をする時はphp artisan serveを使うか、MAMPのhtdocフォルダからLaravelプロジェクトのpublicフォルダのURLをブラウザに打ち込んでいました。
しかし、publicフォルダのURLを叩くと、パスがうまくいかないようで下記のようなリンクファイルをうまく読み込めません。
<link rel="stylesheet" href="/css/app.css">
かといって、毎回、php artisan serveコマンドを打つのも面倒だしということで、DropboxフォルダにMAMPの開発環境にバーチャルホストを使う設定を、ググりながらやってみました。
なんとか、できるようになったのでこちらにメモを書いておきます。
バーチャルホストのカスタマイズ
@redamoonさんがQiitaに書かれたMAMP使い方・設定手順 覚書 – Qiitaのやり方をそのままやりました。
httpd.confの設定
MAMPをインストールしたフォルダに、httpd.confというファイルがあります。
場所:
/Applications/MAMP/conf/apache/httpd.conf
まずはバックアップをとります。
次にこのファイルで Virtual hostsで検索すると下記の部分がでてきます。
# Virtual hosts # Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
#がついているとコメントアウトなので、Include /Applications〜の前の#を削除して保存します。
# Virtual hosts Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
httpd-vhosts.confの設定
こちらも、MAMPをインストールしたフォルダにhttpd-vhosts.confというファイルがあります。
場所
/Applications/MAMP/conf/apache/extra/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>
ここの下に自分の開発環境までのパスをいれるのですが、MAMPの開発フォルダをDropboxにしている場合、httpd.confでVirtual hostsを有効にする(コメントアウトを外す)と、もともとのlocalhostも効かなくなってしまうので、MAMPのhtdocフォルダも同時に設定する必要があります。
私が追記したhttpd-vhosts.confは以下の通り。
<VirtualHost *:80> DocumentRoot "/Users/nakachon/Dropbox/Local/MAMP/htdocs" ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot "/Users/nakachon/Dropbox/Local/MAMP/htdocs/dev/Laravel/01BasicWebSite/public" ServerName basicweb.local </VirtualHost>
“/Users/nakachon/Dropbox/Local/MAMP/htdocs”
は、Dropboxの中に設定しているMAMPの開発フォルダ。ここは ServerName localhostにしておきます。
“/Users/nakachon/Dropbox/Local/MAMP/htdocs/dev/Laravel/01BasicWebSite/public”
は、今回バーチャルホストを設定したいLaravelのプロジェクトです。
MAMPを起動している時にブラウザから「http://basicweb.local/」と入力すると表示するようにしました。
ちなみに、普通に”basicweb.local”とブラウザにいれると、その言葉で検索されてしまうこともあるので、httpから入力するほうが安全です。
hostsの編集
こちらはMAMPではなく、MACのOSにあるhostsファイルを編集します。
Finderを開き画面上にあるメインメニューから「移動→フォルダへ移動」をクリック。
/private/etc
と入力すると、hostsというファイルがそのフォルダにあるので、これを編集します。
こちらも事前にバックアップをとっておきます。
元々あるのは消したりしないで、下記の記述を追加します。(おそらく、localhostは最初からある)
127.0.0.1 localhost 127.0.0.1 basicweb.local
保存して終了。
MAMPの再起動
MAMPの再起動します。(サーバーを停止&サーバーの起動)
これで大丈夫なはず。
ちなみに、httpd-vhosts.confの書き方を間違えると、MAMPのサーバーが起動しなくなります。その時はバックアップに戻して、もう一度確認してから修正してください。
まとめ
以上、MAMPをDropboxで使っている自分がバーチャルホストを設定してみた方法をご紹介しました。
今まであまりサーバーのことを気にしないでやってきた自分にとって、なるべく避けたかったことだけど、Laravelやる以上は必要なことだったのでメモとして残します。