apache PHP不会回显环境变量,尽管它们出现在var_dump中

sgtfey8w  于 2023-11-21  发布在  Apache
关注(0)|答案(1)|浏览(139)

我有一个Debian 12服务器,运行Apache 2(虚拟主机)+ PHP 8.2。
我正在努力让PHP读取环境变量,并使用以下代码进行测试:

<?php
   $scriptUrl = $_ENV['SCRIPT_NAME'];
   echo "$scriptUrl";
?>

字符串
奇怪的是,页面上什么也没有。
我已经用其他几个环境变量尝试过了,比如SCRIPT_URL。我也试过使用getenv('SCRIPT_URL')函数,但没有用。
我运行了var_dump($_SERVER);,它返回了大量的变量,包括正确的SCRIPT_NAME,但是我尝试的PHP似乎无法访问任何变量。
我想这与我的Apache /虚拟主机/ PHP配置有关。

l2osamch

l2osamch1#

1.为什么你期望SCRIPT_NAME被设置为环境变量?你通常会发现在$_SERVER超全局中而不是在$_ENV中。$scriptUrl = $_SERVER['SCRIPT_NAME'];应该给予你期望的结果。
1.并非所有的环境变量都必须填充到超全局变量中。与var_dump(getenv());相比,var_dump($_ENV)可能会显示不同的结果(或没有结果)。有关详细信息,请参阅变量顺序。
1.要查看可用的内容,请尝试:

var_dump($_ENV);

var_dump(getenv());

var_dump($_SERVER);

字符串

相关问题