0

ローカルホストで正常に動作する CakePhp プロジェクトをデプロイしていますが、本番環境では、コントローラーのインデックス アクションを呼び出すと白い画面が表示されます。デバッグ レベルは 3、cake php エラー ログなし、httpd エラー ログなし、php エラー ログなし。ログでデバッグするものはありません。

権限はOK、キャッシュフォルダーは空、mod_rewriteはOK、ファイルの末尾にある空白は削除されています...

ログイン アクションを呼び出すことはできますが、ログインに失敗します。print_r と echo を使用してデバッグしていたところ、CakePhp がセッションを初期化できず、session_id が null になっていることがわかりました。メソッド setFlash が機能していません。また、ログイン失敗のフラッシュ メッセージはありません。

私を助けてください。

4

3 に答える 3

3

アプリケーションで同じ問題が発生しました。

これをチェックして:

1.) controllers<?php内で、タグ ( BOM )の前に何かがあるかどうかを確認します。私はいつもvimでチェックしていました。

2.)tmpフォルダーが書き込み可能かどうかを確認します。( chmod -R 777 app/tmp)

3.) サーバーに最新バージョンの PHP がインストールされているかどうかを確認します。

たぶん、2.) を最初に確認する必要があります。

于 2013-03-13T08:24:08.257 に答える
1

私は問題を解決しました!ファイルのエンコーディングの問題でした。私のローカルホスト プロジェクトでは、 UTF-8は正常に動作します (Wamp を使用した Windows 7) が、Linux CentOS サーバーでは UTF-8 が動作しません。すべてのファイルを " ANSI as UTF-8 " (BOM なし) として保存する必要がありました。

于 2013-03-15T23:29:31.877 に答える
0

別の方法を使用してセッションを保存しようとしましたか?

CakeはデフォルトでfileEngineを使用しますが、権限が台無しになっている場合やファイルへの書き込み中にエラーが発生した場合は、mySQLを介してセッションを保存できます。

FileEngineではなくMEMORYまたはDATABASEにセッションを設定するフィールドがあると思います。

于 2013-03-13T08:27:50.260 に答える