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
Этот способ не самый красивый, но он точно поможет. Суть в том, что он дает пользовательским скриптам доступ к файлам за пределами корневой директории сайта. Это не очень хорошо, но применимо, если, конечно, вы не сисадмин какого-нибудь хостинг-провайдера.

3 thoughts on “open_basedir restriction in effect

  1. Здравствуйте!

    Спасибо за статью, но у меня вопрос:
    Могли бы вы указать что именно закомментировать в файле preferences.php

    Спасибо!

    • Весь код, который идёт после комментария //If possible, use a disk cache to enable attaching large attachments etc, то есть вот этот:
      if (function_exists('sys_get_temp_dir') && is_writable(sys_get_temp_dir()))
      {
      Swift_Preferences::getInstance()
      -> setTempDir(sys_get_temp_dir())
      -> setCacheType('disk');
      }

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">