Article ID: 432, created on Mar 7, 2012, last review on Apr 25, 2014

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

原因

此错误信息表示 PHP 脚本正尝试访问不允许访问的文件夹。出于安全考虑,针对托管于 Parallels Plesk Panel 中的域名的 PHP 选项默认仅允许访问 /tmp 与 http(s)docs 文件夹。权限设定由每个虚拟主机的 open_basedir PHP 变量进行限制。

解决方案

如果您需要允许使用某个虚拟主机的 PHP 脚本访问其他文件夹,您需要为带有新路径值的虚拟主机设置一个‘open_basedir’选项,用冒号隔开文件夹名称。 仅拥有 root 优先权的用户可在域名的 vhost.confvhost_ssl.conf 文件上进行此操作(针对 SSL 虚拟主机)。 欲了解更多信息,请参阅 Parallels Plesk Panel 文档中的‘包含指令至 Web 服务器的配置文件中’

您应用这些更改后,应该重新创建 Apache 的配置文件并使用 shell 中以下命令来重启 Apache 服务。 如果已找到 vhost(_ssl).conf 文件,该文件会自动添加至域名的 httpd.include 文件中:

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

自 10.0 版本起:
~# /usr/local/psa/admin/sbin/httpdmng --reconfigure-all

注意: 如果您没有运行以上命令,vhost.confvhost_ssl.conf 将不会包含在 Apache 配置中,而更改不会生效。

示例:

注意: HTTPD_VHOSTS_D 需要由一个进入域名位置的真正路径替换,该路径因操作系统与 Parallels Plesk Panel 版本的不同而不同。 您可在 /etc/psa/psa.conf 文件中查看当前值。 ADD_PATH 需要由进入授权访问的文件夹的真正路径替换。

Create HTTPD_VHOSTS_D/domain.com/conf/vhost.conf: 

---8<---

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


--->8---

 Create HTTPD_VHOSTS_D/domain.com/conf/vhost_ssl.conf:

---8<---

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


--->8---

针对子域名,需要创建相应的 HTTPD_VHOSTS_D/domain.tld/subdomains/subdomain/conf/vhost.conf 文件:

---8<---

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


--->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