session_start (): файл данных сеанса не создан вашим uid

Я хочу сохранить созданные сеансы в каталоге выше корневого каталога, за исключением случаев, когда я использую любое из следующего:

    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

5

Решение

PHP требует, чтобы файл сеанса принадлежал пользователю, работающему с PHP.

Тогда просто беги chown -R www-data:www-data /var/www/storage/sessions/ иметь собственную папку и файлы сессий вашего пользователя PHP (www-data:www-data ваш PHP пользователь и группа разделены :).

Вы можете использовать метод PHP get_current_user() или беги в баш php -i | grep user и найдите там своего пользователя, использующего PHP.

5

Другие решения

редактирование конфиг / config.yml и заменить save_path:

session:
save_path: '/tmp'
3

Я мог бы быть, что ваш файл Session был создан другим пользователем (ну 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" );
1

Другое решение: переименуйте папку вашего сеанса
var / session to var / session_old

создать новую папку
вар / сессия

и удалите старую.

0

это работает для меня:

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

В Ubuntu в Windows 10 мой пользователь php является пользователем по умолчанию, который я создаю для первой установки, я не знаю почему, потому что etc/apache2/envvars не настроен так.

Не берите в голову, я изменяю это, чтобы исправить это быстро, и теперь, это работает.

export APACHE_RUN_USER=rudak
export APACHE_RUN_GROUP=rudak
0

То, что сработало для меня, может сработать и для вас.

Похоже, что-то пошло не так с сеансом. Откройте DevTools браузера и удалите все Sessioncookies.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector