Назад | Перейти на главную страницу

open_basedir против сессий

На сервере виртуального хостинга для open_basedir установлено значение.: / Path / to / vhost / web: / tmp: / usr / share / pear для каждого виртуального хоста. У меня есть клиент, работающий на WordPress, и он жалуется на ошибки open_basedir:

ПРЕДУПРЕЖДЕНИЕ PHP: file_exists () [function.file-exists]: действует ограничение open_basedir. Файл (/ var / lib / php / session / sess_42k7jn3vjenj43g3njorrnrmf2) находится за пределами разрешенных путей: (.: / Path / to / vhost / web: / tmp: / usr / share / pear)

Таким образом, PHP-сеанс save_path не включен в open_basedir, но сеансы на всех сайтах на сервере, похоже, работают нормально, за исключением этого прерывистого экземпляра. Я подумал, что, возможно, обработчик сеанса по умолчанию игнорирует open_basedir, и это предупреждение было вызвано тем, что WP напрямую обращается к файлу сеанса.

Однако из того, что я вижу, PHP 5.2.4 представил проверку open_basedir в конфигурации session.save_path: http://www.php.net/ChangeLog-5.php#5.2.4 (Я использую PHP 5.2.13).

Любые идеи?

Создайте каталоги (например, «phptmp») для сеансов в каждом пути виртуальных хостов (сохраните разрешения и владельца), затем добавьте session.save_path, upload_tmp_dir для каждого виртуального хоста. Это безопасный способ. Если уточнить, как определяются виртуальные хосты (панель управления, вручную) - мы дадим более подробный ответ.