CakePHP導入時に Forbidden You don’t have permission to access hogehoge on this server が出た時のメモ

CakePHP導入時に Forbidden You don’t have permission to access hogehoge on this server が出た時のメモ

CakePHPの勉強をしようと思ってdotinstallを見てたんですが、.htaccessを有効にするためにhttpd.confを書き換えようという所で表記のエラーが出てしまいました。

環境はiMac Mountain Lionです。

結論から言うと、「フォルダ名に大文字を使うと面倒なことになる」という事みたいです。

大文字も使えるのかもしれませんが、今回は大文字に拘る理由もなかったので小文字にして解決でした。

とりあえず、同じように悩んでいる人がいる可能性がなきにしもあらずなので、書き残しておきます。

状況

public/HogeHoge というディレクトリがCakeのプロジェクトになる予定だったので、そこのhtaccessが有効になるように、HogeHogeディレクトリの「AllowOverride」の設定を「All」にしようとしてました。

いじったファイル

最終的に意味の無かったものを含めると以下のファイルをいじってました。
  • /etc/apache2/httpd.conf
  • /etc/apache2/users/username.conf
  • /etc/apache2/extra/httpd-vhosts.conf
とりあえずそれぞれに以下の設定を加えてみたりしてました。


<Directory "/Users/XXXX/Sites/users/xxxx/public/HogeHoge/">
Options FollowSymLinks
AllowOverride All
</Directory>


しかしうまくいかず。

Allow from allとかも書いてみるもうまくいかず。

Optionsのとこ変えたり消したりするもうまく行かずでした。

対策

そういえば、/etc/apache2/extra/httpd-vhosts.conf でエラーログの場所を指定していたな。と思って、見てみました。

$ tail -f error_log

※エラーログの場所は人によって違います。

するとこんな記述が。

 [error] [client ::1] mod_hfs_apple: Mis-cased URI: /Users/XXXX/Sites/users/xxxx/public/hogehoge/, wants: /Users/XXXX/Sites/users/xxxx/public/HogeHoge/

ああ、これは大文字がダメな感じなのでは。。。

なんとなくそう思ってディレクトリ名を HogeHoge -> hogehoge として、

/etc/apache2/users/username.conf に

<Directory "/Users/XXXX/Sites/users/xxxx/public/hogehoge/">
Options FollowSymLinks
AllowOverride All
</Directory>

を追加すると…

できました。

おわりに

知らないというのは怖いですね。

しかし、なぜ最初からエラーログを見なかったのか。

反省しよう。