php open_basedir File () <- пустые скобки - PullRequest
2 голосов
/ 29 августа 2011

У меня есть сервер с установленным ISPConfig3, и у меня есть пользователь с несколькими веб-сайтами и общими файлами.

У меня странная open_basedir проблема:

Trying to include: /var/www/clients/client2/web4/web/core/defs.php
Warning: require(): open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/clients/client2/web4/web:/some more paths.....

Как видите, /var/www/clients/client2/web4/web/core/defs.php находится под /var/www/clients/client2/web4/web, что находится в разрешенных путях open_basedir.

Есть идеи, что бы это могло быть?

EDIT:

Хорошо, я обнаружил, что defs.php действительно включен правильно. После его завершения я получаю сообщение об ошибке «File () находится за пределами разрешенного пути (путей)»:

Обратите внимание, что File() <- фигурные скобки пусты. </p>

Я думаю, что это происходит из-за функции require / include, может быть. Я использую fastCGI, кстати.

кто-нибудь видел это где-нибудь?

Примечание:

http://www.howtoforge.com/forums/showthread.php?t=51164

Не отображается под suPHP.

Я обнаружил, что проблема возникает при использовании eAccelerator. переход на APC решай!

1 Ответ

1 голос
/ 28 января 2013

Это можно исправить , очистив кэш eAccelerator rm -rf /var/cache/php-eaccelerator/* и перезагрузив Apache.

Если вы расширили open_basedir из-за предыдущего слишком узкого пути, предыдущие предупреждения останутся неправильно кэшированнымии сообщается снова, хотя код работает правильно.

Другим решением является настройка веб-панели управления /usr/share/doc/php-eaccelerator-..*/control.php иустановить eaccelerator.allowed_admin_path.Затем очистите кэш браузером и немедленно перезагрузите Apache

. На общих хостингах это большая проблема.(потому что без очистки кэша включаемый файл остается там. Даже отключение «open_basedir» не предотвращает предупреждение. Также прикосновение к файлу нежелательно, потому что небольшого редактирования, такого как пробел, недостаточно для повторного кэширования, а обратное редактирование возвращаетта же проблема.)

...