作ったCakePHPアプリをサーバに設置する段階でハマりました。セキュリティを考えて,ファイルの位置などをちゃんと公開フォルダ以外に置くようにして配置。
最初,うまく動かない。DBを作るの忘れてた・・・・作った。
やっぱりうまく動かない。phpの設定を見るとmysqlのモジュールが入っていない。PHPを再コンパイルした。
やっぱりうまく動かない。
普通にLamppが入っているとか,yumでインストールされたapache+mysql+phpではなく,ベンダーさんが必要な機能だけをインストールしたWebサーバなので,どこがわるいのかよくわからない。
どうもうまくmod_rewriteが動作していない模様。mod_rewriteが入っていないのかと思ったがちゃんと入っているし。
エラーログを見てみると。やっぱり
"RewriteRule directive is forbidden"
というのが残っています。これでググってみると,
日曜研究室さんの記事を発見。記事に従ってhttpd.confに
Options FollowSymLinks
を追加したら動作するようになりました。
文字化け
動いたはいいんですが,Windowsでの開発環境では全然文字化けしなかったのに,サーバに配置したらとたんに文字化けしました。(T-T)
そういえば,と自分が書いた過去のエントリを参照。config/database.phpに
'encoding' => 'utf8',
を追加したら化けなくなりました。自分のブログが役立った。
追記
Options FollowSymLinksについてしらべてみました。
どうも,これが設定されていないと,rewriteをhttpd.confに指定している分にはいいですが,rewriteの設定を.htaccessで指定したときにうまく動かない。ということのようです。ということは,CakePHPの動作には必須な設定ではないのでしょうか。Apacheのバージョンによっても動作が違ったりしそうな気もします。もうちょっと調べてみます。