2017-01-20 6 views
2

Я хочу сохранить созданные сессий в директории выше корня, за исключением того, когда я использую одно из следующих действий: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

Может ли кто-нибудь мне помочь?

Edit: Мой сервер работает на PHP 7.1

+0

Это ошибка разрешения пользователей linux; убедитесь, что вы умеете читать/писать в эти места (папки должны быть 0755, а ваши файлы должны быть 0644), и что ваш пользователь имеет разрешение на чтение в эти места. – Kaylined

+0

Как я могу узнать, какой пользователь хочет получить доступ к этим местам? и изменения прав разрешены? – Oreborous

ответ

3

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.

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^