前言撤回日記

Fixing a CakePHP 404 error

080823cakephp.jpg
CakePHPというPHPフレームワークが便利で重宝しているのだけれども、ローカル環境で動いていた物がサーバにアップロードしたら動かなくなった。特定のactionで「The requested address was not found on this server」と表示される。
いろいろと原因を探っているうちに、app/config/core.phpでDEBUG定数を0(production)にした際に、controllerで$usesにセットしたmodelが読み込まれなくなり、そのためNot foundになるらしい所まで判明。

で、解決方法として、こちらに
CakePHPのdebugレベルをproductionにするとThe requested address was not found on this server.になる問題 (山本隆の開発日誌)

問題があったのは、app/tmpフォルダとその下のフォルダのアクセス権でした。
tmpフォルダの下には、cacheフォルダやlogフォルダがあります。
おそらく、ここにファイルを作成できなかったためエラーが発生していたのではないかと思います。


とあったので、とりあえずパーミッションを777に変更してみたものの残念ながらウチでは解決せず。
で、結果的にapp/tmp/cache/models/に入っているDB Listのキャッシュファイルを削除したら問題なく動作した。
どうやらmodelを追加する前の状態がキャッシュされていたため、新規に追加したmodelが読み込まれなかったようだ。

けっこうハマったので同じ悩みを抱えた人のためにもメモっておきます。

参考:Nabble – Re: 404 Not found on existing controller and action(ここでは特にpersistent/をクリーニングする、と書かれてますな。)

9件のコメント

  1. コメント by 匿名 — 2010.05.18 @ 4:06 PM

  2. ?

    コメント by kohashi — 2010.05.19 @ 10:36 PM

  3. あああ、どうやら手違いで日本語を受け付けなくなっていたもよう。
    もし日本語でコメントしてくれたのに反映されなかったのならば申し訳ないっす!
    今はフィックスしております。ごめんなさい〜。

    コメント by kohashi — 2010.05.19 @ 11:08 PM

  4. 同じ問題で2時間程ハマッった後、この記事にたどりつきました。
    ありがとう、助かりました!

    コメント by SoftPyramids — 2010.05.31 @ 4:13 PM

  5. コメントありがとーございます。
    お役に立ったみたいでなによりっす。
    僕もハマった甲斐がありました(笑)。

    コメント by kohashi — 2010.05.31 @ 11:24 PM

  6. 参考になりました!!

    コメント by Luna — 2010.07.27 @ 12:08 PM

  7. > Luna
    よかったっす!

    コメント by kohashi — 2010.08.12 @ 11:45 PM

  8. ありがとうございます!
    解決しました!

    コメント by tj — 2010.08.13 @ 11:21 AM

  9. > tj
    どういたしまして!
    こちらこそコメントどーもです!

    コメント by kohashi — 2010.08.13 @ 6:45 PM

コメントをどうぞ

Copyright © 2004 elbro.net