require_once() [function.require-once]: open_basedir restriction in effect
Вот что съело целый час моего времени, которое я мог потратить на разработку своего приложения DojoDojo. Возникает она, из-за настроек php.ini, а именно пункт open_basedir, в котором прописаны пути.
- open_basedir ограничивает список файлов, к которым может обращаться PHP, указанным деревом директорий.
- open_basedir может применяться независимо от того, используется защищенный режим или нет.
Настройки php.ini можете просмотреть запустив phpinfo(), или создав файл info.php на сервере и вставив туда код
<?php phpinfo(); ?>
Он выведет, всю информацию, и в пункте open_basedir можно увидеть пути, которые открыты для использования скриптами. Значит если возникает эта ошибка, скорее всего Вашему скрипту доступ к каталогу, к которому доступ ему запрещает php.ini. Нужно дополнить, в значение open_basedir, путь до каталога скрипта.
Итак, ошибка ясна, что дальше? Рытье в гугле дало следующее.
Дальше есть три способа решить этот вопрос.
1. Изменить php.ini, добавив туда нужный каталог со скриптом, (просто вставив после двоеточия). Этот способ, я отношу к маловероятным, так как хостинг редко дает возможность изменять этот файл. Можете написать в техподдержку хостинга, возможно они решат эту проблему.
2. Добавить .haccess (если нет), прописав туда значение "php_value open_basedir Путь". Тоже не всегда помогает. Мне не помог. Но вдруг поможет Вам.
3. Создав свой php.ini файл, в корневой папке.
Если Php запущен как fast-cgi. А это обычно php 5.3*.
Добавляем в .htaccess
AddHandler php5-fastcgi .php Action php5-fastcgi /cgi-bin/php5.fcgi
В этой же папке создаем папку cgi-bin (она уже там может быть), переходим в нее и создаем в ней файл php5.fcgi .
То есть выходит создан файл по адресу public_html/cgi-bin/php5.fcgi. Содержимое данного файла:
#!/bin/sh exec /usr/local/cpanel/cgi-sys/php5 -c /home/ВАШ ЛОГИН ОТ СИПАНЕЛИ/public_html/cgi-bin/php.ini
Сохраняем и ставим права на этот файл 755.
После чего, создаем файл php.ini там же, в папке cgi-bin и прописываем туда необходимые php директивы через равно. Например:
register_globals = on magic_quotes_gpc = on
open_basedir = /home:/tmp
Сохраняем, и все начинает работать.
Да, способы, так себе, но пока не нашел ничего лучше.
Комментариев нет:
Отправить комментарий