什么是一般情况?虚拟主机用户算不算一般情况?$_SERVER['DOCUMENT_ROOT']是指服务器中定义的文档根目录(当前脚本所在的)
__FILE__ 是指当前脚本的绝对路径和文件名。很明显是不一样的。

解决方案 »

  1.   

    $_SERVER['DOCUMENT_ROOT']是Apache配置文件中设置的DocumentRoot的值
      

  2.   

    DOCUMENT_ROOT 是网站(包括虚拟主机)的根目录在机器中的位置
    __FILE__ 是当前文件的绝对路径+文件名通常情况下,__FILE__ 以 DOCUMENT_ROOT 为起始
    但是当你的程序在虚拟目录(ALIAS)或用户目录(USER_DIR)下时,就可能不一致了。
      

  3.   

    通常情况下,__FILE__ 以 DOCUMENT_ROOT 为起始不是吧,__FILE__是从根目录开始的绝对路径.怎么是以DOCUMENT_ROOT 为起始?
      

  4.   

    以前都是用$_SERVER['DOCUMENT_ROOT']来确定网站根目录,然后以其为基本,包含文件时都是以这个为根目录的。现在换了一台虚拟就机,$_SERVER['DOCUMENT_ROOT']突然就不能包含文件了,提示,找不到文件或者不存在该目录,真是急死人了。网站根目录到底应该怎样指定啊?
      

  5.   

    我是楼主,麻烦大虾们,帮我想想办法,怎样定义网站根目录啊,因为包含文件都用到这个根目录为起始点的,现在换了虚拟主机以后,$_SERVER['DOCUMENT_ROOT']作为根目录时,却找不到包含的文件了。
    我通常这样写的,
    //test.php
    <?
      require_once $_SERVER['DOCUMENT_ROOT']."/a.php";
    ?>现在网站换了虚拟主机了,都出现问题了,救命啊
      

  6.   

    在config文件里配置站点根目录define("WEB_ROOT", dirname(__FILE__) );
    config文件放到网站的根目录里,
    其它文件包含配置文件,
    包含其它文件时根据WEB_ROOT来定位即可。
    require_once( WEB_ROOT . "/a.php" );
      

  7.   

    感觉这样写还没有直接写$_SEVER['DOCUMENT_ROOT'];方便啊,直接就是网站根目录了。想放哪个文件夹都无所谓