最近,我安装了一个包含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']);
时,这似乎不会从我的系统中打印出来。
有人可以让我摆脱痛苦吗?
由于
答案 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似乎建议也可能需要手动设置环境变量。
希望它有所帮助。