[已问this at SU;建议在 SO 重新发布]
我们有使用 $_SERVER['DOCUMENT_ROOT'] 作为路径的 PHP 程序,我们可以将私有(private)目录(使用唯一名称)放置在服务器上安全、已知的位置。该目录包含从多个可能是数千个服务的 PHP 页面收集的数据摘要;此摘要对所服务页面的主要功能没有影响,最终可以忽略或删除。虽然存在,但基于 PHP 的工具可以检查摘要数据并提供报告。
这在各种 PHP 服务器上运行良好,并且似乎是根据 PHP Manual documentation 设置的“自动”(?) :
'DOCUMENT_ROOT'
The document root directory under which the current script is executing, as defined in the server's configuration file.
多年来,我们安装了几个不同的 PHP 服务器,它们似乎都预配置到了合理的路径,而我们没有进行任何明确的配置工作。
我们有一些使用我们软件的客户提示这个路径似乎被设置为空,这似乎与上面的定义不一致。 (null 是否表示某些特殊路径?)(其中一个客户声称他们有 (php -v) "PHP 5.6.16-3+deb.sury.org~trusty+1 (cli) ... Zend Engine v2.6.0 , ... 使用 Zend OPcache v7.0.6-dev, ..."和 (uname -or) "3.19.0-25-generic GNU/Linux"[??Generic GNU/Linux??]
请原谅我的无知,DOCUMENT_ROOT 是一个可配置项吗?在哪里可以找到服务器的“配置文件”?所有不同的 PHP 服务器实现都在同一个地方吗?如果未设置,我可以/应该更改该配置文件以明确设置它吗?
如果没有,是否有另一种方法可以提供通往安全的长期“临时”本地目录的路径?
最佳答案
$_SERVER['DOCUMENT_ROOT']
可以在您的 apache httpd.conf
中找到,并且可以对其进行配置。这是您将从中提供文档的目录。默认情况下,所有 Web 请求都取自此目录,因此它不应为空。
此链接可让您快速了解为什么使用 documentroot:http://httpd.apache.org/docs/2.4/urlmapping.html#documentroot .
我个人没有看到使用 $_SERVER['DOCUMENT_ROOT']
用于我完全控制的服务器的问题,但由于别名,我会谨慎地在共享主机解决方案上使用此路径引用在配置中。在这种情况下,我将手动设置 $_SERVER['DOCUMENT_ROOT']
。
<?php
echo $_SERVER['DOCUMENT_ROOT'];//Real Path
$_SERVER['DOCUMENT_ROOT'] = "/new/path/www";
echo $_SERVER['DOCUMENT_ROOT'];//New Path
?>
关于php - 如何配置 PHP 服务器变量 $_SERVER ['DOCUMENT_ROOT' ]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40048444/