2011/07/25

Zendでコントローラが呼ばれずに、404が返ってくる

Zendをはじめて、早速ハマったので、その解決法。

■症状
1.本のサンプル通りに/zend/controllers/下に.htaccessとindex.phpを置いた。
2./zend/controllers/application/controller下にHogeController.phpを置いた。
3.HogeController.phpのクラス名は間違っていない。
4.ディレクトリ・ファイルのパーミッションは問題ない。
5.IndexControllerのindexActionだけ呼ばれる。それ以外のコントローラは「404」になって呼ばれない。

■対応
そもそもコントローラが見つからなかったらZendのエラーが起きるはずで、
apacheの「404」にはならないだろうと思い、.htaccessの中身をチェック。
.htaccessの中身は何も問題通りなので、その.htaccessがそもそも呼ばれていないんじゃ
ないか疑惑。
/etc/http/conf/httpd.confを確認。「AllowOverride」で検索。
「AllowOverride」が「none」になっていたら、そいつが原因。
なので、「AllowOverride All」にし、apacheを再起動したら上手くいった!!