我已经对包含public_html之外的文件进行了很多研究,但是没有一个起作用,所以这就是我要发布的原因。
我的文件结构是这样的:
>home
>username
>includes
resources.php
>public_html
index.php
在index.php上,我想包含resources.php,所以我有这个:
include_once("/home/username/includes/resources.php");
但是它不起作用。例如,如果我将其更改为此(并在public_html中放入另一个“ resources.php”),则它会
include_once("/home/username/public_html/resources.php");
为什么绝对路径不使用“包含”工作?如何为public_html以外的文件使用绝对路径?
在此先感谢您,如果将其视为重复的内容,我们深表歉意(我找不到类似的具体内容)。
答案 0 :(得分:1)
出于安全原因,PHP通常受限于public_html内,并且在该路径之外没有访问权限。
通常来说,您应该将需要从PHP访问的所有目录放在public_html中,并使用相对路径。
答案 1 :(得分:0)
很可能由于Web服务器和php所运行的帐户无法访问您的主目录,因此/home/username/includes/resources.php无法正常工作。
您可以使用ls -l / home / username进行检查。您可能会发现Web服务器没有“包含”的任何权限。
如果您检查/ home / username / public_html,我敢打赌您会发现做权限允许Web服务器访问,这就是它起作用的原因。