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

php.ini использует несколько включаемых путей - ограничение open_basedir

Мне нужно разрешить включать путь для поддомена vhost в Plesk 10. Я отредактировал путь PHP PEAR в /etc/php.ini, так как я счастлив, что он доступен по всему миру:

include_path = ".:/usr/share/pear/"

Это работает постольку, поскольку PHP может видеть файлы в этом каталоге, когда сценарий пытается их включить, но я получаю ужасную ошибку openbasedir:

Warning: require_once() [function.require-once]: open_basedir restriction in effect. File(/usr/share/pear/xxxx.php) is not within the allowed path(s): (/var/www/vhosts/xxxx.com/subdomains/test/httpdocs/:/tmp/) 

Правильно ли я говорю, что поддомен или основной домен может иметь файл vhost.conf, в котором я могу изменять разрешенные пути openbasedir? Я пробовал искать решения, но боюсь, что пока не вижу ни одного :)

Ах нашел!

1) создайте vhost.conf для поддомена: /var/www/vhosts/xxxx.com/subdomains/test/conf/vhost.conf

2) добавить следующее:

   <Directory /var/www/vhosts/xxxx.com/subdomains/test/httpdocs>
      <IfModule sapi_apache2.c>
        php_admin_value open_basedir "/var/www/vhosts/xxxx.com/subdomains/test/httpdocs:/tmp:/usr/share/pear"
      </IfModule>
      <IfModule mod_php5.c>
        php_admin_value open_basedir "/var/www/vhosts/xxxx.com/subdomains/test/httpdocs:/tmp:/usr/share/pear"
      </IfModule>
    </Directory>

3) Настройте plesk для распознавания нового vhost.conf

/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain test.xxxx.com

4) Перезагрузите apache

service httpd restart