Мар 07

open_basedir restriction in effect

Такое предупреждение выдавал php на одном из сайтов при отправке письма: ErrorException [ Warning ]: is_writable(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s) …
Сайт написан на Kohana и от этого предупреждения удалось избавиться довольно легко. Я просто закомментировал строчки, на которых выскакивает exception. Это делается в файле modules/email/vendor/swift/preferences.php. Вобщем-то там и написано, что при желании их можно закомментировать.
Если такая ошибка возникает в джумла, то помогает замена

на

В общем случае проблема решается изменением кода, который генерирует исключение.
Но есть и более радикальный способ:
В файле /etc/httpd/httpd.conf нужно найти строчку php_admin_value open_basedir и заменить то, что написано в кавычках на none, то есть должно получится:
php_admin_value open_basedir none
Этот способ не самый красивый, но он точно поможет. Суть в том, что он дает пользовательским скриптам доступ к файлам за пределами корневой директории сайта. Это не очень хорошо, но применимо, если, конечно, вы не сисадмин какого-нибудь хостинг-провайдера.