Раз за разом на форуме появляются темы, связанные с определением пути хранения сессий. Такие ситуации возникают, как правило, когда сайт переносят с локального сервера на хостинг, с хостинга на хостинг. В большинстве случаев человек, обратившийся за помощью, не понимает, где причина проблем с сайтом. Здесь рассмотрим «легкий» случай (и самый распространенный), когда метод хранения сессий выбран в админке как «Files».
В документации по переносу сайта есть такая строчка
'session_save_path' => 'тут указать полный путь или не указывать ничего',
Разберемся с «тут указать полный путь». Штатно этот путь определяется при установке сайта и директория выбирается либо функцией session_save_path(), либо sys_get_temp_dir(). Есть ещё вариант — директорию для хранения сессий можно создать выше корня сайта, назвать её, например, session и разрешить туда запись. Почему выше? Ну, потому что мы же не хотим, чтобы кто попало мог из web смотреть наши сессии.
Далее нехитрый скрипт, который отпечатает вам все 3 варианта. Назовите файл sp.php, положите его в корень сайта, запустите, набрав в браузере yoursite.ru/sp.php.
<?php if ($sp === false) { echo "1. Путь с помощью session_save_path() не определен"; } else { echo "1. Путь с помощью session_save_path() определен".PHP_EOL; echo $sp.PHP_EOL; } echo "2. Путь хранения временных файлов PHP".PHP_EOL; echo $sp.PHP_EOL; echo "Вы можете определить уникальную директорию, добавив к пути".PHP_EOL; echo $u.PHP_EOL; echo "Будет, например, так: ".$sp.$u.PHP_EOL.PHP_EOL; echo "3. Возможный путь выше корневой директории".PHP_EOL; echo $sp.PHP_EOL;
Вам осталось вписать ваш путь в /system/config/config.php
'session_save_path' => 'сюда',
Нужная директория будет создана автоматически, правда для 3 случая возможны нюансы, связанные с настройками
конкретного сервера.
Реклама #
Zau4man 3 года назад #
Есть путь проще. Открыть файл system/config/config.php и удалить в нем строчку типа
В этом случае будет использоваться директория для сессий по умолчанию, заданная в настройках хостинга.
Перезаходим на сайт, открываем настройки сайта и пересохраняем. Этот путь по умолчанию пропишется в config файл. Для openserver допишется что-то типа
IamB 3 года назад #
Да, решение проще, но не всегда работает.
Викторыч 3 года назад #
Спасибо за науку! И немедленно выпил лайкнул!
Zau4man 1 год назад #
С одной из последних версий движка есть вариант проще. В админке
и там смотрим значение