繁体   English   中英

不能包含或要求绝对路径

[英]Can't include or require an absolute path

服务器上的Apache版本:2.2.26

服务器上的PHP版本:5.5.9

我在一个文件夹中有一个名为admin_config.php的文件,该文件包含一个.htaccess文件,其中Deny from ALL值。

index.php (位于DOCUMENT_ROOT ),我试图将此文件包括在以下行中:

include '/core/config/admin_config.php'

在家里,这很好。 在我的云服务器上,这不起作用(无错误消息)。 如果我改用require ,则会收到内部500错误。

如果将线更改为相对路径,则可以使用:

include 'core/config/admin_config.php'

为什么我不能在这里设置绝对路径? 这是服务器上的错误还是我的错误?

您提供的includerequire的路径是本地文件系统上的路径。 它们不是您在访问网站的URL中看到的内容。 /开头的绝对路径是从文件系统的根目录开始的。 在Windows中, /fooC:\\foo\\ 诸如foo/bar类的相对路径相对于PATH配置变量,这取决于您的PATH设置方式,其中还包括调用了哪个PHP文件。

使用绝对路径通常不是一个好主意,因为在不同系统上(如您所经历的),绝对路径可能会有所不同。 在本地计算机上,该站点可能位于C:\\core\\... ,但是在服务器上,它将在/var/www/mysite/core/... PATH也可能很麻烦。 最好的方法通常是使用__DIR____FILE__魔术常数来构造相对于当前文件的绝对路径(如果有意义):

require __DIR__ . '/some/folder/file.php`;

这包括相对于写入文件的文件some/folder/file.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM