web-dev-qa-db-ja.com

CakePHPエラー:セッションを構成できません。session.auto_startの設定に失敗しました

このエラーが発生します:

Error: [CakeSessionException] Unable to configure the session, setting session.auto_start failed.

Cakephp2.2.4を使用しています。

[〜#〜]編集[〜#〜]

この男は同じ問題を抱えていたようです: ライブサイトでのCakephpセッションエラー そしてこれを使用しています

if(!isset($_SESSION)) session_start(); 

beforefilterAppControllerメソッド内でエラーを修正します。

だから私の質問は:なぜこれが起こったのですか?すべてが正常に機能していた後、突然このエラーが発生しました。さらに、フォルダapp/tmp/sessionsが空で、Cakeによって処理されるようにセッションを構成しました(Config/core.php)。

19
Enrique Marcos

PHPバージョン5.4.19-開発者は、ユーザースクリプトからsession.auto_startオプションを設定する機能を閉じました。

CakePHPは、2.4.0バージョンでのみデフォルトのセッション構成からこのオプションを削除しました。

したがって、3つの主なオプションがあります:CakePHPをアップグレードする、PHPをダウングレードする、または標準のphpセッションを使用する。

21
Andriy Struk

AndriyStrukの答えは正しいです。彼は次のように述べています:つまり、3つの主なオプションがあります:CakePHPのアップグレード、PHPのダウングレード、または標準のPHPセッションの使用。

ただし、4番目のオプションがあります、_/lib/Cake/Model/Datasource/CakeSession.php_(557行目あたり)の1行をコメントアウトするだけです。

_// 'session.auto_start' => 0,
_

これにより、Cakeがその設定でini_set()を呼び出すのを停止し、致命的なエラーを防ぎます。

27
Simon East

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 
));
8
BadHorsie

Php.iniファイルで、session.auto_startを1に設定してみてください。

5
haipt

コメントするのに十分な評判がないので、Simonの回答に加えて次の回答を追加します。

それを機能させるには、 'session.auto_start' => 0の3つすべての出現をコメントアウトする必要がありました(CakeSession.phpの557行目以降)

詳細については、CakePHPチームの次のパッチを参照してください。 https://github.com/cakephp/cakephp/commit/faa2cbd3c3fc1bbf83064727847789123110b8e3#diff-bd8dc176fa0f41743dbaafa75f77b5ae

1
Stefan