好吧,我已经试过了一切,这是迄今为止最好的地方,我想在此创建文档根目录httpdocs/[folder]/html
,并且我有我想要的php包含文件去根(require '../[folder]/file.php']
以上,但不能访问比/var/www/vhosts/example.com/httpdocs
更远。我知道我受限于open_basedir
,因为价值仍然是httpdocs/[folder]/html
在phpinfo()
但是对于我的生活,我无法改变当地的价值!尝试在文档根目录外包含文件(Plesk 10)
这是我到目前为止已经试过: 我已经看到了这一点 - How to include file outside document root? - 创造了“vhost.conf”是STIL坐在conf目录下,重新配置文件,重新启动Apache的...什么都没有。这是一个很好的帖子,但似乎有点过时了。
我编辑php.ini文件本身open_basedir = '/var/www/vhosts/example.com/httpdocs
,上传它备份到它在哪里,重新配置,重新启动 - 没有什么
我掏出“的httpd.conf”从其他的conf添加相同的行编辑它文件,(vhost.conf),把它放回 - 没有,然后我试图做什么godaddy在这里说 - http://help.godaddy.com/article/1616并添加行php_admin_value open_basedir none' to 'httpd.conf
- 没有运气。
现在是0435,我几乎可以睁大眼睛 - 这个网站将于明天在2000年推出!预先感谢任何愿意/能够阅读和/或帮助的人。
更新:感谢快速反应,这里是最好的答案,我可以给你:
它是否给你一个错误?
是的,我得到了一个服务器错误,并通过我的服务器错误日志,具体如下:
PHP的警告:要求()[function.require]:实际上open_basedir的限制。文件(/ var/www/vhosts/[example.com]/httpdocs/[文件夹]/[安全php文件存在的文件夹]/[file.php])不在允许的路径内:
所以我99.99%肯定是因为open_basedir的限制。
你确定你的网络服务器被设置为虚拟主机的所有者吗?
我敢肯定,我有点新的控制服务器,我真的不知道这意味着什么究竟,但我通过Godaddy的虚拟专用服务器,运行的Parallels Plesk v10.3.1,我做上面的文件移动通过Shell SSH。
在Plesk中,我可以将'Document root'更改为任何低于/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';
如果我正确认识你,我没有使用服务器的整个路径。
它给你一个错误?你确定你的网络服务器设置为虚拟主机/?你是否尝试使用相对或绝对路径? –
SeanNieuwoudt
2011-12-18 09:53:40
不幸的是,Plesk是由一些对网站知之甚少的人设计的。您的文件必须位于公共目录树下或专用目录下(现在允许PHP访问专用目录)。 – 2011-12-18 17:38:08
是的,检查我做的最后一次更新,我解决了原始问题,但由于某种原因,服务器跳过了我所有的嵌入文件(css,js,php,图像,视频)。我甚至将'open_basedir'设置为'none',但它仍然忽略它们,所以它不再是'open_basedir'问题。我在index.php上看到了所有我的无格式html,但是我没有收到任何错误,我的脚本'需要'一堆文件!在php.ini..ugh中必须打开或关闭一些东西! – phpKid 2011-12-18 17:57:07