网站主机名和docroot

时间:2010-01-15 18:01:17

标签: php apache

PHP中是否有办法从服务器获取主机名文档根?我想这样做而不将它们作为变量存储在你的PHP代码中。我不愿意使用$ _SERVER,因为我听说它不可靠并受到攻击。如何在虚拟主机上完成?是否存在可靠和安全的方法?

3 个答案:

答案 0 :(得分:3)

你可以尝试

$docroot = getenv("DOCUMENT_ROOT");

getenv允许您访问环境变量。您可以通过打印phpinfo查看可用的所有变量。也许apache_getenv也有帮助。

答案 1 :(得分:1)

$_SERVER['DOCUMENT_ROOT']可靠但$_SERVER['SERVER_NAME']不可靠(请参阅Chris Shiflett’s SERVER_NAME Versus HTTP_HOST)。仅当启用Apache’s UseCanonicalName时,才会显示规范名称。

答案 2 :(得分:0)

如您所述,您可以访问:http://php.net/manual/en/reserved.variables.php 这里有一个细分,使用realpath()和$ _SERVER来获取doc root: http://www.helicron.net/php/

此外,你可以exec('hostname')或类似的东西来获取主机名。