[Symfony] Apache標準の404 Not Found が表示されるので mod_rewrite を有効にする
Symfony 1.4 にて、prod環境にするとApache標準の404 Not Found が表示されるという症状に陥りました。
Apache の mod_rewrite を有効にすることで解決したので、その手順をメモ。
他にもdev環境からprod環境へ切り替えると動作しない時の対処方法があるみたいなので、困ったら下記の記事を読みましょう。
・dev環境からprod環境に変えると動かなくなる時の対処方法 « symfonyで開発日記
今回の症状は、
http://example.com/index.php/login
http://example.com/frontend_dev.php/login
とかだとアクセスできるけど、
http://example.com/login
だとアクセスできない状態でした。
まず、mod_rewrite が有効になっているか確認するには、apachectl に -l オプションを付けて、コンパイル済みのモジュールリストを確認します。
# /usr/local/apache2/bin/apachectl -l
Compiled in modules:
mod_rewrite.c
mod_rewrite.c があればOK.
なければ、config.nice に —enable-rewrite オプションを付けて再コンパイルして、インストールし直します。
# /usr/local/src/httpd-2.2.21/config.nice --enable-rewrite
# make
# make install
ちなみに、make install を実行しても今あるドキュメント、 ログファイル、設定ファイルは上書きされないみたいです。
・参考:コンパイルとインストール - Apache HTTP サーバ
インストール後に、もう一度 apachectl -l で mod_rewrite.c があるか確認します。
以上です。