このエラーが発生します:
Error: [CakeSessionException] Unable to configure the session, setting session.auto_start failed.
Cakephp2.2.4を使用しています。
[〜#〜]編集[〜#〜]
この男は同じ問題を抱えていたようです: ライブサイトでのCakephpセッションエラー そしてこれを使用しています
if(!isset($_SESSION)) session_start();
beforefilter
のAppController
メソッド内でエラーを修正します。
だから私の質問は:なぜこれが起こったのですか?すべてが正常に機能していた後、突然このエラーが発生しました。さらに、フォルダapp/tmp/sessions
が空で、Cakeによって処理されるようにセッションを構成しました(Config/core.php
)。
PHPバージョン5.4.19-開発者は、ユーザースクリプトからsession.auto_startオプションを設定する機能を閉じました。
CakePHPは、2.4.0バージョンでのみデフォルトのセッション構成からこのオプションを削除しました。
したがって、3つの主なオプションがあります:CakePHPをアップグレードする、PHPをダウングレードする、または標準のphpセッションを使用する。
AndriyStrukの答えは正しいです。彼は次のように述べています:つまり、3つの主なオプションがあります:CakePHPのアップグレード、PHPのダウングレード、または標準のPHPセッションの使用。
ただし、4番目のオプションがあります、_/lib/Cake/Model/Datasource/CakeSession.php
_(557行目あたり)の1行をコメントアウトするだけです。
_// 'session.auto_start' => 0,
_
これにより、Cakeがその設定でini_set()
を呼び出すのを停止し、致命的なエラーを防ぎます。
Andriyの答えによると のように、CakePHPをアップグレードするか、PHPをダウングレードする必要があります。ただし、そのオプションが必要ない、またはない場合は、Cakeセッションを再構成して、Cakeのセッションではなく標準のPHPセッションを使用するようにする必要があります。
app/Config/core.php
Configure::write('Session', array(
'defaults' => 'cake', // You need to change the value of this to 'php'
'timeout' => 120,
'cookieTimeout' => 20160,
'checkAgent' => false
));
Php.iniファイルで、session.auto_start
を1に設定してみてください。
コメントするのに十分な評判がないので、Simonの回答に加えて次の回答を追加します。
それを機能させるには、 'session.auto_start' => 0の3つすべての出現をコメントアウトする必要がありました(CakeSession.phpの557行目以降)
詳細については、CakePHPチームの次のパッチを参照してください。 https://github.com/cakephp/cakephp/commit/faa2cbd3c3fc1bbf83064727847789123110b8e3#diff-bd8dc176fa0f41743dbaafa75f77b5ae