index.php中定义$_SESSION['user'],  在main.php中取不到,两个文件都有session_start();并且php.ini中use_cookies已设置为1
use_trans_sid也设置为1,session.save_path设置为/var/lib/php/session 并且session文件夹属于nginx组nginx用户,php-fpm.conf的session也配置在/var/lib/php/session下,但是现在的问题是,session无法跨页传递,并且在浏览器端cookie的PHPSESSID也没写入(确定浏览器已开启cookie)。
求大神支招index.php
<?php
session_start();
error_reporting(E_ALL);
$_SESSION['user'] = 'xuwenzhi';echo '<pre>';
print_r($_SESSION);
echo '</pre>';
echo $_SESSION['user'];
setcookie('AAA', 111);?>
<a href="main.php">main</a>

解决方案 »

  1.   

    第一次执行 index.php 后
    注释掉 $_SESSION['user'] = 'xuwenzhi';
    再次执行
    注意:期间不要关闭浏览器观察是否有 session 输出,以确定你的 session 配置正确
      

  2.   

    注释掉后,输出为空,意思是session配置有问题?
      

  3.   

    session 保存的路径是否可写?
    看看error log有没什么输出。
      

  4.   

    session.save_path的路径是/var/lib/php/session
    session的权限是这样的
    进入session文件夹后,里面的session文件是这样的,是不是这里有问题呢?
      

  5.   

    你的是 rw------
    需要是 rw-rw-rw
      

  6.   

    但是这个session不是由nginx动态生成的sess_xxx文件吗?也就是在加载页面的时候会生成新的sess_xxx文件,怎么才能让nginx生成的这些sess_xxx文件是rw-rw-rw的呢?
      

  7.   

    设置 session 临时目录的权限为 rw-rw-rw-
    注意:
    1、session 临时文件是由 php 创建的,而不是 nginx
    2、在 web 方式工作的 php 是匿名用户身份
    3、除了用 php 程序创建的目录外,对其他目录 php 都是以一般用户身份进行访问的的
    能否访问的到,取决于权限字的最后一节(文件主、组用户、一般用户)
      

  8.   

    看你的权限,是php没有权限读写导致。