我在设置中遇到会话变量问题。我在SESSION变量中存储了一些数据,但它们似乎没有正确存储,或者至少我无法访问它们。在我运行MAMP的本地计算机上,它可以运行ifne,但在使用php5/nginx的prod中,我的会话变量不存储。(我得到一个未定义的索引错误)。
我读过它可能与session.save_path和访问权限有关,但我仍然感到困惑。这个路径是在哪里定义的?在我的php.ini文件中,有一个
;session.save_path = "/var/lib/php5"
但它以";"开头所以我猜它被忽略了?此外,我应该给予文件夹什么访问权限(一旦我找到它)?我如何知道php是哪个用户,它属于哪个组?看起来很基本,但我很难理解
编辑:显然,这不是权限的问题,因为目录中有很多会话文件夹,都是由php创建的。。。所以我真的不明白为什么我的会话变量不可访问!:-(上面写着未定义的索引。。。
提前感谢!Aurélie
如果它以;
开头,则确实会被忽略。默认值是临时目录,即/tmp
,但为了确定起见,我建议您查看phpinfo()
并在那里进行检查,因为您检查的文件可能不是PHP使用的唯一配置。
会话路径需要可由PHP写入,并且还必须得到open_basedir
指令的允许(如果您使用强烈建议使用的open_basedir
)。
你使用nginx,所以我假设你使用的是PHP-FPM。要找到PHP-FPM的用户,您需要在php-fpm.conf
中找到user = ...
指令(通常位于/etc
下),或者您可以使用ps、htop等工具找到正在运行的进程。