Apacheは起動しているが、ブラウザでlocalhostが確認できない

脱XAMPP実行時に、ひっかかったことのメモ。
OSXデフォルトのApacheを使うということで、System Preference -> Sharing -> Web Sharing にチェックで起動するはずでしたが…

localhostに接続できない

原因

DocumentRootディレクトリを削除していることによる、httpd.confのsyntax errorでした。
163~168行目の記述は下記でしたが、肝心の~/Webディレクトリを過去に削除していました。

#

# DocumentRoot: The directory out of which you will serve your

# documents. By default, all requests are taken from this directory, but

# symbolic links and aliases may be used to point to other locations.

#

DocumentRoot "/Users/RM/Web"

対応

まずはhttpd(Apache)の起動確認。起動しています

$ sudo apachectl start

Password:

org.apache.httpd: Already loaded

ここでOSXApache設定ファイル、/private/etc/apache2/httpd.confの更新日が結構最近なことに気づく。そういえば始めたばっかの時にバックアップとらずにいじってました。で、多分httpd.confに問題があるのだろうと推測。
まずは使用しているのが/private/etc/apache2/httpd.confで間違いないか確認したい。が、方法はわからないので他に同名ファイルないか確認してよしとする
$ locate httpd.conf
続いてsyntaxerrorを確認
$ httpd -t
ここで168行目のパスがディレクトリではないと言われ、上記問題を発見。
~/Webディレクトリを作成して完了ですが、403 Forbiddenです。

403 Forbiddenの解決

原因

168行目DocumentRootの設定と195行目 のずれ。これはさすがに自分でいじってないはずだけど…

対応

とりあえずForbiddenて言われたらパーミッションだろということで、 ls -l で確認。755で問題なさそう。
次いで/private/var/log/apache2/error_logを見てみます。client denied by server configurationとのこと。
ここらへんの情報でググってみるも、症状は似ていても、解決はVirtualhostがらみとか、user.confがとかで微妙に違う。ちょっと焦りだす。
やむをえずApacheの設定項目の解説を見て、一つ一つ確認することに。
参考 : httpd.conf の設定
ここで原因に気付き、195行目のパスを168行目と一致させる

#

# This should be changed to whatever you set DocumentRoot to.

#

<Directory "/Users/UserName/Web">

無事indexが表示されたのでした。

十分に理解していない部分がある不安と、とりあえず行き詰まることなく解決まで持っていけたことへの喜びを同時に味わいました。インフラは早々に誰かにお任せしたいと思っているので、一旦これで良しとします。