【发布时间】:2017-12-12 13:34:24
【问题描述】:
最近,我安装了一个包含 PHP7 的新 Ubuntu 服务器。以前,在 PHP5.3 上(或者它可能是 PHP5 的更高版本,我可以使用 $_SERVER['HOME'] 返回服务器的主路径(即 /var/www/)。但是,这在 PHP7 中是不可能的,因为$_SERVER['HOME'] 已不复存在。
如果我有一个文档根目录为 /var/www//httpdocs 的站点,我如何获得 /var/www/ 部分。我无法对其进行硬编码,因为我的测试服务器(Synology NAS)不使用 PHP7 并且无法升级到 PHP7,因此,我需要使用一个对于 PHP5 和 PHP7 来说是常量的变量,它返回相同的结果来讨论与 PHP5 中 $_SERVER['HOME'] 的结果相同。
我尝试使用$_ENV['HOME'],但是当执行简单的die($_ENV['HOME']); 时,这似乎不会从我的系统中打印任何内容。
有人可以帮我摆脱痛苦吗?
谢谢
【问题讨论】:
-
请注意:
$_SERVER["HOME"]从来都不是 PHP 提供的标准标头。这可能是因为网络服务器现在也是不同的版本。只需发送print_r($_SERVER)即可找到所需的内容。 -
谢谢@apokryfos。我确实尝试过,但我唯一能看到的是文档根目录,但我需要它成为文档根目录的父级。也许我需要看一下“string dirname (string $path [, int $levels = 1]);”。你同意吗?
-
好吧,首先你可以尝试
getenv("HOME"),在更糟糕的情况下尝试exec("echo ~"),让它更可靠一点。如果不是,那么假设您在所有环境中都保持类似的设置,那么您的建议将起作用。