PHP:无法写入会话数据

时间:2015-05-27 06:40:28

标签: php session nginx

我将session.save_path设置为' PATH / TO / SESSION'并将chmod设置为此路径为777

file_put_contents('PATH/TO/SESSION/test.txt','hello world')工作正常,所以此路径应该可以写入php ...但它不适用于会话。

session_save_path()显示了良好的路径:' PATH / TO / SESSION', 但在session_save_path('NEW/PATH/TO/SESSION')之后,session_save_path()仍会显示' PATH / TO / SESSION'。

// file.php
$sessionStatus = session_start(); // returns true, without any exceptions
var_dump($_SESSION['foo']);
$_SESSION['foo'] = 'bar';
var_dump($_SESSION['foo']);
// end of file.php

当我打开这个file.php时,它仍会在文件末尾生成警告:

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (PATH/TO/SESSION) in Unknown on line 0 

页面重新加载后,$_SESSION['foo']未设置。

创建新会话文件,但其大小为0字节。

PHP 5.5,服务器nginx 1.8,Linux。

3 个答案:

答案 0 :(得分:0)

在致电session_save_path()

之前,您需要设置session_start()

答案 1 :(得分:0)

您需要在开始会话之前声明会话保存路径。

Session data path. If specified, the path to which data is saved will be changed. session_save_path() needs to be called before session_start() for that purpose.

来自php文档:http://php.net/manual/en/function.session-save-path.php

答案 2 :(得分:0)

将此用作自定义路径。

session_save_path( '/家庭/ example.com /会话');

ini_set('session.gc_probability',1);