[英]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'
为什么我不能在这里设置绝对路径? 这是服务器上的错误还是我的错误?
您提供的include
或require
的路径是本地文件系统上的路径。 它们不是您在访问网站的URL中看到的内容。 以/
开头的绝对路径是从文件系统的根目录开始的。 在Windows中, /foo
是C:\\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.