やっと動いた〜!

USB-SSD上にubuntu9.10をインストールし、持ち運びできる開発環境として活躍する予定ですが、ubuntu9.10上でcakePHPを動かすのにずいぶん手間どりました。

症状としては、

    • cakePHPのスタート画面はちゃんと表示されたが、/entries/readのようにコントローラとアクションを指定すると404
    • /app,/webroot,/cakeを開発中アプリに置き換えるとなぜかトップページが空白
    • apacheのerror.logにはInternalRedirectが10回を越えたとか書いてある

cakePHPで引っかかるのは大抵mod_rewriteである、ということでずいぶんいろんなことを試しました。

    • phpinfo()でロードされているモジュールの中にmod_rewriteがあることを確認
    • /etc/apache2/site-available/defaultのAlloOverrideをAllにする

それでも変わらず。うーん、と唸ること数日で、.htaccessのRewriteRuleが違うことに気がつきました。デフォルトではapp内にwebrootがありますが、公開用にwebrootを別ディレクトリにしているので、ここも書き換える必要があるのでは?と思って書き換えた結果、/entries/read等はうまく動くようになりました。

あとはindex.phpの場合だけど、mod_rewriteのログを見るとなんだかindex.phpだのindex.htmlだの、index.plだのindex.cgiだのいろいろ読みに行ってるんですね。また、index.phpを読みに行ってからループしてるような気がしないでもないけどどうやって直すか分からずwま、とりあえず動かせるようにはなったので製造&単体テスト環境として使おうと思います。