我在访问子域上的$_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
这是虚拟主机configuration:
<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>
这个问题可能是由错误配置的web服务器引起的,PHP文档说这$_SERVER['DOCUMENT_ROOT']
包含在服务器配置文件中定义的脚本目录。 这可能因此与实际的脚本目录位置不同。
DOCUMENT_ROOT
当前脚本正在执行的文档根目录,如服务器的配置文件中所定义。
来源: PHP保留的变量$_SERVER[]
手册页