什么是$ _SERVER的PHP7版本[' HOME']

时间:2017-07-08 09:21:50

标签: php server php-7

最近,我安装了一个包含PHP7的新Ubuntu服务器。以前,在PHP5.3上(或者它可能是PHP5的更高版本,我可以使用$_SERVER['HOME']返回服务器的主路径(即/ var / www /)。但是,这是不可能的PHP7作为$ _SERVER [' HOME']已不复存在。

如果我的网站的文件根目录为/ var / www // httpdocs,我该如何获取/ var / www / part。我无法对其进行硬编码,因为我的测试服务器(Synology NAS)不使用PHP7而无法升级到PHP7,因此,我需要使用一个常量用于PHP5和PHP7的变量,它将相同的结果返回给forumate与$ _SERVER [' HOME']在PHP5中的结果相同。

我尝试使用$_ENV['HOME']但是当执行简单的die($_ENV['HOME']);时,这似乎不会从我的系统中打印出来。

有人可以让我摆脱痛苦吗?

由于

2 个答案:

答案 0 :(得分:1)

好的,感谢@apokryfos,我已经解决了这个问题。我或许应该提一下,我想在文档根目录之外包含一个文件(oops,我的不好)。

getenv(' HOME')由于某种未知原因在我的服务器上返回一个空字符串,但我用来克服这个问题的方法是使用dirname选项。

最终结果是:

set_include_path(get_include_path().PATH_SEPARATOR.dirname($_SERVER['DOCUMENT_ROOT'],1)."/includes");

再次感谢您的协助。

答案 1 :(得分:0)

如果这很有用。我最近从PHP-7.0升级到PHP-7.1并遇到了同样的问题。 $_SERVER["HOME"]已不再设置。虽然我没有真正使用它,但我发现它有点好奇,所以这就是我所做的修复它:安装并启用PHP-7.1-FPM并禁用PHP-7.1 apache2 mod。

a2dismod php7.1 
a2enmod proxy_fcgi setenvif
a2enconf php7.1-fpm
service apache2 restart

版本7.0的想法应该类似

虽然我不需要执行下一步,但问题Environment variables and PHP似乎建议也可能需要手动设置环境变量。

希望它有所帮助。