【发布时间】:2018-09-16 13:35:45
【问题描述】:
我目前正在使用此方法为我的 HTML 模板添加某些部分:
<?php include $_SERVER['DOCUMENT_ROOT'] . "/common.php"; ?>。
到目前为止,这对我来说效果很好,但只有一个问题。我的主域(在此示例中我们称之为 test.com)附加到根文件夹。但是我的子域附加到另一个文件夹。所以它看起来像这样:
test.com | /var/www/Root Folder
sub1.test.com | /var/www/Root Folder/Subdomains/Essentials/Sub1
这意味着$_SERVER['DOCUMENT_ROOT'] 将无法正常工作,因为根虚拟已更改。我知道你可以使用:<?php include_once '/var/www/Root Folder/common.php'; ?>。但这很痛苦,因为如果我将我的网站移动到另一台服务器,那么我必须再次更改绝对路径。
有解决这个问题的方法吗?
【问题讨论】:
-
是否可以使用
__DIR__常量来解决它? -
$_SERVER['DOCUMENT_ROOT']没有帮助,因为服务器多次使用路径别名。 -
如果能够移动它是一项要求,该文件应该是子域应用程序代码库的一部分,并且您不应链接到另一个应用程序或站点来包含它。所以你可以复制它,通过 composer 等将它作为组件提供。
-
阅读this answer、this answer和this answer了解类似问题。
标签: php