В моем php.ini у меня есть следующий набор:
session.save_handler = redis
session.save_path = "tcp://localhost:6379?weight=1"
Но я хочу сохранить этот набор, так как он работает с этой системой, которую я использую, но единственное, что, когда я пытаюсь создать сессию, это дает мне ошибки.
Проблема в том, что я пытаюсь установить обработчик сохранения тогда как файлы ТОЛЬКО для моего login.php, а затем после этого использовать redis.
У меня есть следующий код в моем файле, но не меняется с redis на файлы:
session_set_save_handler('files');
session_save_path("/tmp/");
session_start(); // Starting Session
session_set_save_handler
функция не совсем то же самое, что session.set_handler
конфигурация директивы. Бывший ожидает вызываемый тип в качестве первого аргумента, тогда как последний ожидает скалярное значение в качестве одного из зарегистрированных обработчиков в PHP.
То, что вы хотите, это сказать ini_set('session.save_handler', 'files')
,
Когда вы устанавливаете session.save_path
для redis
обработчик сеанса, вы должны избегать использования имен хостов, которые не могут быть разрешены напрямую через ваш DNS-преобразователь. Это почти все, что вы положили в /etc/hosts
лайк localhost
, Вместо этого попробуйте использовать IP-адрес, который Redis прослушивает напрямую, например: 127.0.0.1
, Причина в том, что PHP не будет пытаться смотреть на /etc/hosts
непосредственно при разрешении имени хоста.
Других решений пока нет …