$ _SERVER ['DOCUMENT_ROOT']的问题

时间:2011-08-21 14:34:54

标签: php html apache

我的服务器全局变量名称为:DOCUMENT_ROOT。

这是我的config.php文件:

<?php
define ('UPLOAD_DIR',$_SERVER['DOCUMENT_ROOT'].'/resouces/');

test.php文件

<?php

$photo='myimage.php';
echo '<img src="'.UPLOAD_DIR.$photo.'">';

问题在于测试代码时..图像不显示,目录以:

开头
  

C:// program files / easyPHP / www / resources

而不是

  

http://127.0.0.1:8888/

因为它应该是......我试图在httpd.conf文件中更新这一行:

DocumentRoot "${path}/www"

DocumentRoot "http://127.0.0.1:8888/www"

但是服务器声明了一个错误:

enter image description here

提前谢谢: - )

3 个答案:

答案 0 :(得分:3)

你误解了DOCUMENT_ROOT;它是提供代码的根目录的路径,而不是IP,这就是您在屏幕截图中收到错误的原因。此外,当您上传文件时,实际上想要文件路径,而不是服务器IP。

来自文档:

  

[Document root is]正在执行当前脚本的文档根目录,如服务器配置文件中所定义。

当您将路径放入HTML中的文件时,使用服务器的IP非常非常不良做法;它应该是一个文件路径。使用相对文件路径而不是绝对路径要好得多;它向公众揭示了更少关于您网站的信息,使其更加安全。

答案 1 :(得分:2)

您在物理路径和WWW URL之间感到困惑。

答案 2 :(得分:1)

$_SERVER['DOCUMENT_ROOT']是真实文件系统上的路径。 你不需要它。 只需使用

define ('UPLOAD_DIR','/resouces/');

请勿在网站上的文件系统和路径上混淆路径 它们可能没有任何共同之处(但在默认情况下请求URI发送到$_SERVER['DOCUMENT_ROOT'].URI

您也可以使用

define ('UPLOAD_DIR_FILEPATH',$_SERVER['DOCUMENT_ROOT'].'/resouces/'); //to use in upload, renaming, deleting etc
define ('UPLOAD_DIR_WWW','/resouces/'); //to show URLs

您不需要在每个级别上声明它,因为路径从根/

开始