开发者

What is the difference on a Wamp or Web Server for the definition of $_SERVER['DOCUMENT_ROOT'] and where does it get defined on both?

开发者 https://www.devze.com 2023-02-22 10:50 出处:网络
What is the difference on a Wamp or Web Server for the definition of $_SERVER[\'DOCUMENT_ROOT\'] and where does it get defined on both?

What is the difference on a Wamp or Web Server for the definition of $_SERVER['DOCUMENT_ROOT'] and where does it get defined on both?

And the reason I ask is I have a bunch of live websites that use the $_SERVER['DOCUMENT_ROOT'] definition.

On the live websites, $_SERVER['DOCUMENT_ROOT'] works perfectly.

On wamp server locally, it shows $_SERVER['DOCUMENT_ROOT'] as C:/wamp/www even though I have virtual开发者_如何学Go hosts set up. Everything on wamp works except for the $_SERVER['DOCUMENT_ROOT'] declaration.

I used a php script suggested as a fix. The prepend_script set in auto_prepend_file in php.ini:is as follows:

auto_prepend_file = c:/wamp/www/prepend_script.php

$basePath = dirname(__FILE__); // assuming this script is in c:/wamp/www
$projectPath = preg_replace('#('.$basePath.'/[^/]+)/.*#i', '\\1', $_SERVER['PHP_SELF']);
$_SERVER['DOCUMENT_ROOT'] = $projectPath;

What that did was change the$_SERVER['DOCUMENT_ROOT'] from C:/wamp/www to /itsaboutwirelessnetworks/index.php

When in actuality for it to function properly it should be C:/wamp/www/itsaboutwirelessnetworks and not /itsaboutwirelessnetworks/index.php as the prepend script did.

So in order for myself and others to understand how this can affect them, I would appreciate an explanation of why it works on my live server and not the wamp server.

Hence the original question:

What is the difference on a Wamp or Live Web Server for the definition of $_SERVER['DOCUMENT_ROOT'] and where does it get defined on both?


The documentation says about DOCUMENT_ROOT: (emph mine)

The document root directory under which the current script is executing, as defined in the server's configuration file.

So you should look at your config file and check if there is something strange there i'd say.

(I think that unless you've changed it, C:/wamp/www sounds like a valid value to assign to your document-root. If it should be something else, that must be defined in the config of the virtual host)


This seems like a bug in Apache, as it's defined in the Apache httpd.conf file.

http://www.devcha.com/2010/02/solved-incorrect-value-for.html

https://issues.apache.org/bugzilla/show_bug.cgi?id=26052

Apache/php/mysql websites are most often run on Linux servers and you're developing on Windows, the large differences between them could well account for the different bug behaviour.

0

精彩评论

暂无评论...
验证码 换一张
取 消