Article ID: 432, created on Jul 1, 2010, last review on May 7, 2014

  • Applies to:
  • Plesk for Linux/Unix
  • Plesk 11.5 for Windows

Причина

Возникновение ошибки свидетельствует о том, что PHP-сценарий пытается обратиться к папке, доступ к которой не разрешен. В целях безопасности настройки PHP для доменов, размещенных в Parallels Plesk Panel, по умолчанию разрешают доступ только к папкам /tmp и http(s)docs. Ограничения определяются PHP-переменной open_basedir отдельно для каждого виртуального хоста.

Решение

Если необходимо разрешить PHP-сценариям определенного виртуального хоста доступ к дополнительным папкам, установите для параметра виртуального хоста 'open_basedir' новый путь (имена папок должны быть разделены двоеточием). Эту операцию может выполнить только пользователь, обладающий полномочиями пользователя "root" для файлов домена vhost.conf и vhost_ssl.conf (для виртуального хоста SSL). Дополнительную информацию можно найти в разделе 'Включение директив в файл конфигурации веб-сервера' руководства администратора Parallels Plesk Panel.

После внесения этих изменений заново создайте файлы конфигурации Apach и перезапустите службу Apach, выполнив следующую команду. Если будет найден файл vhost(_ssl).conf, он будет автоматически добавлен в файл httpd.include домена:

~# /usr/local/psa/admin/sbin/websrvmng -a -v

ПРИМЕЧАНИЕ. Если данная команда не будет выполнена, файлы vhost.conf или vhost_ssl.conf не будут включены в конфигурацию Apache, и изменения не вступят в силу.

Примеры.

ПРИМЕЧАНИЕ. Вместо HTTPD_VHOSTS_D необходимо подставить реальный путь к месту расположения домена, который может отличаться в зависимости от версии ОС и Parallels Plesk Panel. Текущее значение можно посмотреть в файле /etc/psa/psa.conf. Вместо ADD_PATH необходимо подставить реальный путь к папке, к которой требуется разрешить доступ.

Создайте файл HTTPD_VHOSTS_D/domain.com/conf/vhost.conf:

---8<---
<Directory HTTPD_VHOSTS_D/domain.com/httpdocs>

php_admin_value open_basedir HTTPD_VHOSTS_D/domain.com/httpdocs:/tmp:/ADD_PATH

</Directory>
--->8---

Создайте файл HTTPD_VHOSTS_D/domain.com/conf/vhost_ssl.conf:

---8<---
<Directory HTTPD_VHOSTS_D/domain.com/httpsdocs>

php_admin_value open_basedir HTTPD_VHOSTS_D/domain.com/httpsdocs:/tmp:/ADD_PATH

</Directory>
--->8---

Для субдоменов создайте соответствующий файл HTTPD_VHOSTS_D/domain.tld/subdomains/subdomain/conf/vhost.conf file:

---8<---
<Directory HTTPD_VHOSTS_D/domain.com/subdomains/subdomain/httpdocs>

php_admin_value open_basedir "HTTPD_VHOSTS_D/domain.com/subdomains/subdomain/httpdocs:/tmp:/ADD_PATH"

</Directory>
--->8---

 Кроме того, в файле /etc/php.ini можно настроить глобальную переменную 'open_basedir' для определенного местоположения, например:

---8<---
open_basedir = "/tmp"
--->8---

  После изменения файла php.ini перезапустите Apache.

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c 29d1e90fd304f01e6420fbe60f66f838 85a92ca67f2200d36506862eaa6ed6b8 46a8e394d6fa13134808921036a34da8 bd7fc88cf1b01f097749ae6f87272128

Email subscription for changes to this article
Save as PDF