$ _SERVER [' DOCUMENT_ROOT']返回重复目录名称的路径

时间:2014-06-09 15:45:03

标签: php apache document-root

在子域上访问$_SERVER['DOCUMENT_ROOT']时,我发现了一种奇怪的行为。它包含一个不存在的重复文件夹名称。

以下是$_SERVER的相关输出:

[DOCUMENT_ROOT] => /var/www/sub.domainname.com/sub.domainname.com
[SCRIPT_FILENAME] => /var/www/sub.domainname.com/index.php

应该是:

[DOCUMENT_ROOT] => /var/www/sub.domainname.com

以下是虚拟主机配置:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName sub.domainname.com

    DocumentRoot /var/www/sub.domainname.com
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/sub.domainname.com>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>    
</VirtualHost>

1 个答案:

答案 0 :(得分:2)

这个问题很可能是由错误配置的网络服务器造成的,PHP文档说这个$_SERVER['DOCUMENT_ROOT']包含服务器配置文件中定义的脚本目录。因此,这可能与实际的脚本目录位置不同。

  

<强> DOCUMENT_ROOT
  正在执行当前脚本的文档根目录,如服务器配置文件中所定义。

来源:PHP Reserved Variables $_SERVER[] Manual Page