在子域上访问$_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>
答案 0 :(得分:2)
这个问题很可能是由错误配置的网络服务器造成的,PHP文档说这个$_SERVER['DOCUMENT_ROOT']
包含服务器配置文件中定义的脚本目录。因此,这可能与实际的脚本目录位置不同。
<强> DOCUMENT_ROOT 强>
正在执行当前脚本的文档根目录,如服务器配置文件中所定义。