好的,我已经尝试了一切,这似乎是迄今为止最好的地方,我想在这里创建 Document Roothttpdocs/[folder]/html
并且我有 php 包含文件,我想在根目录之上(require '../[folder]/file.php']
但无法访问超过/var/www/vhosts/example.com/httpdocs
. 我知道我受到限制,open_basedir
因为价值仍然存在httpdocs/[folder]/html
,phpinfo()
但对于我的生活,我无法改变当地的价值!
这是我到目前为止所尝试的:我已经看到了 -如何在文档根目录之外包含文件?- 并创建了一个仍然位于 conf 目录中的“vhost.conf”,重新配置文件,重新启动 apache ......什么都没有。这是一个很好的帖子,但它似乎有点过时了。
我将 php.ini 本身编辑为open_basedir = '/var/www/vhosts/example.com/httpdocs
,将其上传回原来的位置,重新配置,重新启动 - 什么都没有
我通过从另一个 conf 文件(vhost.conf)中添加相同的行来删除“httpd.conf”对其进行编辑,然后将其放回 - 什么都没有,然后我尝试按照 Godaddy 在这里所说的 - http://help。 godaddy.com/article/1616并添加了这一行php_admin_value open_basedir none' to 'httpd.conf
- 也没有运气。
现在是 0435,我几乎睁不开眼睛——这个网站预计明天 2000 年推出!提前感谢任何愿意/能够阅读和/或帮助的人。
更新:感谢您的快速回复,以下是我能给您的最佳答案:
它会给你一个错误吗?
是的,我收到服务器错误,并通过我的服务器错误日志,特别是:
PHP 警告:require() [function.require]:open_basedir 限制生效。文件(/var/www/vhosts/[example.com]/httpdocs/[folder]/[存在安全 php 文件的文件夹]/[file.php])不在允许的路径内:
所以我有 99.99% 的把握是因为 open_basedir 限制。
您确定您的网络服务器设置为 vhosts/ 的所有者吗?
我很确定,我对控制服务器有点陌生,我真的不知道这到底意味着什么,但我通过 Godaddy 有一个虚拟专用服务器,运行 Parallels Plesk v10.3.1,我做了上面的文件移动通过外壳 SSH。
在 Plesk 中,我可以将“文档根目录”更改为以下任何内容/var/www/vhosts/example.com
,Plesk 会将“open_basedir”更改为我设置的任何内容。例如,如果我在 Plesk 中将文档根目录设置为“httpdocs”,那么“open_basedir”将更改为同一个文件夹,一切正常。问题是我不希望公开访问/httpdocs/[folder]
我的目标是我想将“文档根目录”更改为/httpdocs/[folder]/html
“open_basedir”,但由于某种原因/httpdocs
我无法更改该本地值。open_basedir
我想这样做是出于安全目的,所以人们只能直接访问不重要的 php 文件,但 php 本身我想给文件夹更多的访问权限。
您是否尝试包括使用相对或绝对路径?
我试图在“文档根”上方的文件中包含/要求的 php 文件中的路径看起来与这种格式完全一样:
require '../[folder where secure php files exist]/file.php';
如果我理解正确,我没有使用服务器的整个路径。