CakePHP:Warning: session_start() [function.session-start: open(/tmp/sess_xxx, O_RDWR) failed: Permission denied (13) [CORE/Cake/Model/Datasource/CakeSession.php line 618]エラーの対処方法

記事公開日:
最終更新日:

This post is also available in: English-US (英語)

CakePHPのインストール時に、下記のようなエラーが出たときに調べたことと対処した内容のメモです。

CakePHP:Warning: session_start() [function.session-start: open(/tmp/sess_xxx, O_RDWR) failed: Permission denied (13) [CORE/Cake/Model/Datasource/CakeSession.php line 618]

エラーの内容は、セッションの保存先のファイルへのパーミッションがないというエラーです。
php.iniで[session.save_path]が使える場合には[/tmp]ディレクトリを書き込み可能にすることで解決できるようです。レンタルサーバーでは使用できない場合が多いので別の解決方法を探しました。

また、.htaccessで[session.save_path]を設定できるようなのですが、無理矢理感があるので使いませんでした。

エラーの対処方法

[app/Config/core.php]のファイルを書き換えます。
リンク先(GitHub)の219行目以降の部分「'defaults' => 'php'」を「'defaults' => 'cake'」と書き直します。

書き換えることで変更される内容については、181-217行目あたりのコメントアウトされた部分に書いています。
['defaults' => 'php']はphp.iniで設定された方法、['defaults' => 'cake']はCakePHPの[/tmp ]ディレクトリにセッションを保存する...みたいなことが書いています。

//デフォルト
Configure::write('Session', array(
		'defaults' => 'php'
	));

//書き直した後
Configure::write('Session', array(
		'defaults' => 'cake'
	));

フォルダーのパーミッションの変更

あと、[/app/tmp/sessions]フォルダーのパーミッションを[755]から[757]に変更します。


参考サイト:
php - CakePHP: Permission denied (13) - Stack Overflow
セッション — CakePHP Cookbook 2.x ドキュメント


cakephp_logo_250_trans

cakephp_logo_250_trans

No tags for this post.

About
Amelt.net,LLCの創業者で、費用対効果の高い統合webマーケティングによりビジネスパートナーとして継続的にサポート。詳しいより。ブログの更新情報TwitterLinkedIn、またRSSfeedlyにてお知らせしていますのでフォローよろしくお願い致します。