php.ini использует несколько путей включения - ограничение openbasedir
Мне нужно разрешить путь включения для поддомена 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 ответ
Ах, нашел это!
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