本番サーバに配置でハマる

user-pic
0

作った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のバージョンによっても動作が違ったりしそうな気もします。もうちょっと調べてみます。

この件にはさらに後日談が....。Options None をOptions FollowSymLinksに変更したのではなくて,元々

Options ExecCGI
という記述があったところに,
Options ExecCGI
Options FollowSymLinks

と追加したのですが,これがバカでした。Optionsを2行に分けて書いてしまうと1行目の設定は無視されてしまうのです。これで他のCGIが動かなくなってしまいました。(ごめんなさい)

Options ExecCGI FollowSymLinks
正しくはこう書かなきゃ行けません。(´・ω・`)

トラックバック(0)

トラックバックURL: http://php.sunvisor.net/mt/mt-tb.cgi/68

コメントする

このブログで公開した情報は,のちほど Sunvisor Lab. CakePHP のコンテンツにまとめていますので,そちらも参照してみてください。

オススメの本

CakePHP初の公認ガイドブック。まずこれを読む。

CakePHPでの開発の際には常に机上に準備するべし。

CakePHP 1.2を使い始めるならこの本が必携。

CakePHP 1.2での実践が理解できる。

このブログ記事について

このページは、Sunvisorが2008年12月 2日 17:35に書いたブログ記事です。

ひとつ前のブログ記事は「CakePHP1.2で再開」です。

次のブログ記事は「CSVファイルをDBにインポート」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。