Как я могу исправить ошибку разрешения при вызове session_start ()?

когда я загрузил сценарий на сервер, я получил эту ошибку

Предупреждение: Неизвестно: open (/ tmp / sess_58f54ee6a828f04116c2ed97664497b2, O_RDWR) не удалось: разрешение отклонено (13) в Unknown в строке 0

Предупреждение: Неизвестно: Не удалось записать данные сеанса (файлы). Убедитесь, что текущая настройка session_start (); правильно (/ tmp) в Unknown в строке 0

ошибка появилась, когда я звоню, session.save_path хотя я установил разрешение папки / tmp на 777.

php,session,permissions,warnings,

20

Ответов: 15


24 ов принято

Изменить путь к сеансу, в котором вы можете написать данные или обратиться к администратору сервера о проблеме / tmp

http://php.net/manual/en/function.session-save-path.php


9

вам нужно будет изменить свою session.save_pathдирективу php.ini

Вы можете сделать это, используя session_save_path


6

Если у вас есть доступ к SSH, вот как исправить разрешение и право собственности

sudo chown -R NAME_OF_USER /tmp

Замените пользователя NAME_OF_USER, под которым запускается php. Вы можете найти его, просто поместив эти строки в файл php:

$processUser = posix_getpwuid(posix_geteuid());
print $processUser['name'];
exit;

3

Кроме того, вы можете использовать ini_set('session.save_path', '/dir/here');допущение, что у вас есть доступ к этой функции. Другие предложенные способы действительны.


2

У меня была точно такая же проблема с одним из моих PHP-скриптов, и я был похож на то, что я сломал, потому что он работал отлично за день до этого, и я запускаю его с моей собственной локальной машины Puppy Linux, так что это даже не хост или что-нибудь.

Единственное, что я делал до этого, это попытка заставить Java работать в веб-браузере, поэтому некоторые из них, как мне удалось заставить Java работать, но сломали PHP - oops!

Во всяком случае, я помнил, что, пытаясь заставить Java работать, я удалил содержимое папки / tmp, чтобы стереть что-нибудь, что может вызвать проблемы (на самом деле это получилось с помощью Java. Я использовал старый плагин oij с новым Firefox )

Чтобы решить эту проблему, я открыл Диспетчер файлов Rox, перешел в папку / и щелкнул правой кнопкой мыши на tmp folder -> Mount Point 'tmp' and clicked properties.

Я заметил, что разрешения были установлены как Owner - Read, Write, Exec, но Group и World были установлены только в Read и Exec, а не в Write. Я поставил галочку в Write для группы и мира, и теперь PHP снова работает отлично.

Я не знаю, в какой момент разрешения для tmp должны были измениться, но для использования PHP они должны иметь права на запись.

PHP, сессия, разрешение, предупреждение,
Похожие вопросы