cakephpについて質問です。


http://phptips.seesaa.net/article/107623702.htmlで紹介されているように、さくらインターネットサーバでcakephpを設置しました。
(フォルダ名は変更していますが、同じ設置環境です。)

設置完了の画面?が表示されたので、helloworldのコントローラを作ってみましたところ、コントローラの内容(helloを表示するだけ)が表示されず、時間が表示されてしまいます。

http://さくらインターネット/hoge/コントローラ名/

というより、~/hoge/適当なパス を入力すると時間表示される現象が発生してしまいます。
(どこで、時間が表示されているのかすら不明)

原因、対策をご存じの方いらっしゃいましたら、教えてください!

環境は以下になります。

ver 1.3.1.4

/ドメイン名
 /cake ←cakephpモジュール群インストールフォルダ
   /cake
   /app
   /docs
   /venders
     ・・・
 /www
   /hoge ←/app/webroot下のモジュール群インストールフォルダ
     ・・・

回答の条件
  • 1人10回まで
  • 13歳以上
  • 登録:2012/01/14 16:50:56
  • 終了:2012/01/21 16:55:03

回答(0件)

回答はまだありません

  • id:tdoi
    確認です。
    http://さくらインターネット/hoge/
    にアクセスすると、設定完了と表示された画面が表示されるが、
    http://さくらインターネット/hoge/何か・・・
    にアクセスすると、時間が表示されるということでよいでしょうか?

    この状況だとすると、mod_rewriteの設定がうまくいっていないのだろうなと想像されます。
    とりあえず、
    http://さくらインターネット/hoge/img/cake.power.gif
    とかは表示されるか確認してみて下さい。

    あとは、1つずつつぶしていく必要があるような気はしますが、時刻を表示するページはデフォルトではないので、何かのエラー画面か何かを時間を表示していると認識されている気もします。それが分かるともう少し判断も付くかと思いますが。時間の表示とはどのような表示でしょうか?
  • id:msato24653110
    tdoiさんコメントありがとうございます。

    おっしゃる通りで、
    http://さくらインターネット/hoge/何か・・・
    にアクセスすると時間が表示されてしまいます。

    http://さくらインターネット/hoge/img/cake.power.gif
    を確認してみましたところ、画像表示されました。

    時間表示は、現在時刻が表示されています。

    mod_rewriteの設定をもう一回確認してみます!
  • id:tdoi
    そうですか。
    やはり、mod_rewriteの設定な感じはしますね。
    /www/hoge/以下の.htaccessでの設定をよりシンプルなものにして、順次確かめてみると原因が分かるかもしれませんね。


    時刻の表示ですが、現在時刻がどのように出てるかによって、誰が出しているか分かるかなと思ったのですが、

    2012/01/16 10:42

    のような表示だけが出るのでしょうか?ソースを見ても同じですか?


    あとは、Config/core.phpでのデバッグモードは2とかにしてありますよね?
    それで、原因が分かる可能性もありますので、念のため。
  • id:msato24653110
    tdoiさんコメントありがとうございます。

    mod_rewriteの設定を確かめてる段階なんですが、RewriteBaseを変更すると、404エラーが表示されて以下ようになりました。
    The requested URL /www/hoge/index.php was not found on this server.
    恐らくご指摘いただいたとおりmod_rewriteの設定に問題がありそうです。

    ちなみに、時間表示については、「2012/01/16 10:42」とだけ表示されています。
    ソースについても、同じでした。

    デバックモードについては、既に2にしている状態となっております。
  • id:tdoi
    なんでしょうね。これ以上は記述を見ないとなんとも言えないですね。
    差し支えなければ、

    /www/hoge/.htaccess
    /www/hoge/index.phpでのdefine

    を載せてもらえれば、コメントできるかもです。

    ちなみに、cakePHPのログや、Webサーバのエラーログとかにも何もでてないですよね?
  • id:msato24653110
    >tdoiさん何度もありがとうございます。

    /www/hoge/.htaccessの記述は以下になります。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    </IfModule>

    /www/hoge/index.phpでのdefineの記述は以下になります。

    if (!defined('ROOT')) {
    define('ROOT', DS. 'home'. DS. 'ドメイン名'. DS. 'cake');
    }

    if (!defined('APP_DIR')) {
    define('APP_DIR', 'app');
    }

    if (!defined('CAKE_CORE_INCLUDE_PATH')) {
    define('CAKE_CORE_INCLUDE_PATH', ROOT);
    }
    上記で、http://さくらインターネット/hoge/何か・・・にアクセスを試みると現在時刻が表示されます。


    ログに関しては、出力はないようです。
  • id:msato24653110
    >tdoiさん

    /www/hoge/.htaccessの記述を以下に変更したところ、正常に動作しました。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /hoge //←部分を変更
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    </IfModule>

    http://phptips.seesaa.net/article/107623702.htmlの以下文章から勘違いしていました。
    ******************************************************************************************************
    cake(app含む)本体が/wwwと同じ階層フォルダ、webrootは/wwwの下位階層フォルダにある場合は、webroot(この例では/hoge/webroot)をBase("/")として、RewriteBase、RewriteRuleを定義すること。
    /cake,/cake/appのRewriteBase、RewriteRuleは/webrootとの相対位置で定義する。
    *****************************************************************************************************

    色々お世話になりました。
    ありがとうございました。
  • id:tdoi
    お~。解決したようでよかったです。
    ちなみに、参考にされていたサイトはいくつか気になるところもあるので、個々の意味を理解して記述するといいですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません