session_start():会话数据文件不是由您的uid创建的

问题描述 投票:0回答:11

我想将创建的会话存储在根目录上方的目录中,除非我使用以下任何一种:

    session_save_path($_SERVER['DOCUMENT_ROOT'] . '/../storage/sessions');
    session_save_path($_SERVER['DOCUMENT_ROOT'] . '/../storage/sessions/'); // With an extra slash at the end
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'] . '/../storage/sessions');
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'] . '/../storage/sessions/'); // Again with the extra slash

这些方法都不起作用,每当我加载页面时,我都会收到以下错误:

警告:session_start():会话数据文件不是由您的 uid 创建的 在 /var/www/bootstrap/bootstrap.php 第 25 行

警告:session_start():无法读取会话数据:文件(路径: /var/www/public/../storage/sessions/) 中 /var/www/bootstrap/bootstrap.php 第 25 行

有人可以帮助我吗?

编辑:我的服务器在 PHP 7.1 上运行

php session
11个回答
12
投票

PHP 要求会话文件由运行 PHP 的用户拥有。

然后只需运行

chown -R www-data:www-data /var/www/storage/sessions/
即可让您的 PHP 用户拥有会话文件夹和文件(
www-data:www-data
是您的 PHP 用户和组,由
:
分隔)。

您可以使用 PHP 方法

get_current_user()
或在 bash
php -i | grep user
中运行并找到运行 PHP 的用户。


4
投票

编辑 config/config.yml 并替换 save_path:

session:
    save_path: '/tmp'

4
投票

这对我有用:

sudo chown -R www-data:www-data /var/lib/php/sessions 

3
投票

在 Windows 10 中的 Ubuntu 上,我的 php 用户是我为第一次安装创建的默认用户,我不知道为什么,因为

etc/apache2/envvars
没有这样配置。

没关系,我更改它以快速修复它,现在,它可以工作了。

export APACHE_RUN_USER=rudak
export APACHE_RUN_GROUP=rudak

2
投票

对我有用的方法也对你有用。

会话似乎出了问题。打开浏览器的 DevTools 并删除所有 Sessioncookie。


1
投票

我可能是您的会话文件是由另一个用户(以及 UID)创建的,请尝试(重新)从您的临时目录中移动会话文件,例如 /var/tmp


1
投票

我还用它在 php 中制作命名管道

<?php
$user = get_current_user();   // get current process user

// We need to modify the permissions so users can write to it

exec( "chown -R {$user}:{$user} $fifoPath" );    

0
投票

另一个解决方案:重命名您的会话文件夹 var/session 到 var/session_old

创建一个新文件夹 变量/会话

并删除旧的。


0
投票

对于lampp用户,
- 转到/opt/lampp/temp/
- 删除会话文件,然后再次测试

再次测试后,
如果显示错误消息 “配置文件的权限错误,不应为全局可写!”
在终端运行以下命令:

sudo chmod 755 /opt/lampp/phpmyadmin/config.inc.php

这对我有用......


0
投票

就我而言,我有基于 M1 ARM 的 xampp,如果您有相同的,请按照以下步骤操作

  1. 首先找到session.save_path来自 http://localhost/dashboard/phpinfo.php

  2. 然后删除所有现有的 会议

我按照上面的方法做了,它成功了


-1
投票

我的解决方案就是擦除会话文件夹的内容。不知道如何或为何有帮助,但确实如此。

© www.soinside.com 2019 - 2024. All rights reserved.