Macのapacheを使ってバーチャルホストとSSIの設定

職場が変わりapache環境で開発をすることになりました。(前の職場ではNGINXだった。)
で、最初はvagrantでVirtualBox立ち上げて〜という感じでやっていたのですが、
Macにはデフォルトでapacheがインストールされていることを今更知ったので、Mac上で開発環境を作ることにしました。
開発環境は ~/Sites に作ることにしました。
やりたいことは、バーチャルホストの設定とSSIでのインクルードを有効にすること。

バーチャルホストを有効にする

まず、バーチャルホストを有効にするための設定をします。
以下のコマンドでhttpd.confを開き、

sudo vim /etc/apache2/httpd.conf

ファイル内から

#Include /private/etc/apache2/extra/httpd-vhosts.conf

の行を検索して(499行目あたり)、先頭の#を削除してコメントアウトを解除します。

Include /private/etc/apache2/extra/httpd-vhosts.conf

SSIを有効にする

次にSSIを有効にします。
先ほどと同じ/etc/apache2/httpd.confファイル内から

#LoadModule include_module libexec/apache2/mod_include.so

の行を検索して(103行目あたり)、先頭の#を削除してコメントアウトを解除します。

LoadModule include_module libexec/apache2/mod_include.so

ここまでを保存して/etc/apache2/httpd.confの編集は完了。

バーチャルホストの設定

バーチャルホストの設定をします。
以下のコマンドでhttpd-vhosts.confを開き、

sudo vim /etc/apache2/extra/httpd-vhosts.conf

このファイルに以下を追記します。場所はどこでも問題ないと思いますが、
自分は一番下に追記しました。

DocumentRoot "/Users/your_user_name/Sites/hoge"
ServerName hoge.dev

ドキュメントルートを /Users/your_user_name/Sites/hoge に設定して、
ドメインをhoge.devに設定します。
バーチャルホストの設定はここで終了。
次にSSIの設定をこのファイルに追記していきます。

SSIの設定

httpd-vhosts.confに以下を追記します。

<Directory "/Users/your_user_name/Sites">
Require all granted
Options Includes
AddType text/html .html
AddOutputFilter INCLUDES .html

Require all granted は全てのアクセスを許可。
AddType text/html .html はMIMEタイプの追加。今回はhtmlを追加。
AddOutputFilter INCLUDES .html は拡張子.htmlのファイルをインクルードすることを許可。
ここまで終わったら、httpd-vhosts.confを保存し、以下のコマンドでapacheを再起動します。

sudo apachectl restart

hosts解決

最後にhostsの設定をすれば完了。今回はhoge.devをドメインに指定したいので /etc/hosts に以下を追記します。

127.0.0.1 hoge.dev

/Users/your_user_name/Sites/hoge にファイルを置いてみて、ページが表示されれば成功。
また、以下のように記述することでHTMLファイルのインクルードもできるようになっています。

<!--#include virtual="piyo.html" -->

参考記事

yosemiteでapacheのvhost設定をする(ついでにRubyも動くようにしとく)