операция не разрешена с отключением связи в сеансе codeigniter

я являюсь приложением, использующим codeigniter 3, при тестировании на локальном сервере xampp все в порядке, но когда я размещался на сервере (в реальном времени), сталкивался с проблемой, связанной с сеансом codeigniter. когда пользователь входит в систему и выполняет действия, внезапно появляется ошибка unlink(/tmp/ci_session..some file path here..):operation not permitted Filename:drivers/Session_files_driver.php Line Number: 354, если обновить страницу, ошибка исчезает, и все в порядке. любое предложение приветствуется.


person prudhvi259    schedule 13.04.2016    source источник
comment
Проверьте права доступа к папке /tmp   -  person Zach Rattner    schedule 13.04.2016
comment
на самом деле такой папки, как tmp, нет, но она показывает такой путь.   -  person prudhvi259    schedule 13.04.2016


Ответы (2)


Проверьте значение $config['sess_save_path'] в config.php. При использовании файлового драйвера для сеансов необходимо указать абсолютный путь к папке, используемой для хранения файлов сеанса. Папка должна существовать, и для нее должны быть установлены правильные разрешения — попробуйте 0700.

Документация здесь

person DFriend    schedule 13.04.2016
comment
спасибо за ваш ответ, я пытался, как вы упомянули, теперь я не получил эту ошибку, но в папке создаются некоторые файлы сеанса, которые станут головной болью, если пользователи не входят в систему и их использование увеличивается. поэтому я хочу любой другой вариант. - person prudhvi259; 13.04.2016
comment
Файлы, созданные там, в конечном итоге будут очищены системой. Независимо от того, используете ли вы драйвер базы данных или драйвер файла, информация о сеансе будет существовать в течение определенного периода времени после закрытия сеанса. Доверьтесь сборщику мусора! - person DFriend; 13.04.2016
comment
я использую файловый драйвер, данные в файлах очищаются после выхода из системы, но файлы все еще существуют, что является моей проблемой (если файлы не увеличиваются, размер моего приложения увеличивается). - person prudhvi259; 14.04.2016
comment
Это действительно не о чем беспокоиться. Файлы с истекшим сроком действия в конечном итоге будут удалены системой. Эти пустые файлы сеансов занимают очень мало места на диске и не повлияют на производительность вашего веб-сайта. Вы можете переключиться на хранение данных сеанса в базе данных, но возникнет та же проблема — в таблице сеансов всегда будет коллекция закрытых/истекших записей сеанса. - person DFriend; 14.04.2016
comment
можете ли вы прислать мне конфигурацию сеанса для файлов driver. - person prudhvi259; 20.04.2016
comment
@prudhvi259, я добавил еще один ответ с информацией о конфигурации. Я надеюсь, что это помогает. - person DFriend; 20.04.2016

В ответ на запрос конфигурации драйвера файлов в application/config/config.php опции должны быть установлены следующие

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'sitesess'; //can be any string you like
$config['sess_expiration'] = 0; 
$config['sess_save_path'] = '/absolute/path/to/folder/for/session/files/;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 1800;
$config['sess_regenerate_destroy'] = FALSE;

См. config.php для получения подробной информации о различных значениях параметров.

Переменные, связанные с файлами cookie в config.php, также важны для правильного функционирования сеанса. В частности, сеансовые файлы cookie используют следующие параметры.

$config['cookie_domain'] = '.example.com';  //for example
$config['cookie_path'] = '/';   //usually works
$config['cookie_secure'] =  FALSE; //Use TRUE to set cookie via HTTPS (server must be setup for SSL), otherwise set to FALSE

Папка, в которой хранятся файлы сеанса, должна иметь соответствующие разрешения и владельца. Дополнительную информацию о разрешениях и т. д. см. в документации CodeIgniter.

person DFriend    schedule 20.04.2016