会话存储php/nginx


Sessions storage php/nginx

我在设置中遇到会话变量问题。我在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等工具找到正在运行的进程。