代码之家  ›  专栏  ›  技术社区  ›  Samg381

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

  •  0
  • Samg381  · 技术社区  · 2 年前

    我有一台Debian12服务器,运行Apache2(虚拟主机)+PHP8.2。

    我正在努力让PHP读取环境变量,并使用以下代码进行测试:

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

    奇怪的是,页面上什么也没印。

    我已经在其他几个环境变量中尝试过这一点,例如 SCRIPT_URL 。我也尝试过使用 getenv('SCRIPT_URL') 功能无效。

    我跑了 var_dump($_SERVER); 它返回了大量变量,包括 SCRIPT_NAME 这是正确的,但是我尝试的PHP似乎都无法访问任何变量。

    我想这与我的Apache/虚拟主机/PHP配置有关。

    1 回复  |  直到 2 年前
        1
  •  0
  •   volkerschulz    2 年前
    1. 你为什么期望 SCRIPT_NAME 设置为环境变量?你通常会在 $_SERVER superglobal不在 $_ENV $scriptUrl = $_SERVER['SCRIPT_NAME']; 应该会给你预期的结果。

    2. 并非所有环境变量都必须填充到超全局中。 var_dump($_ENV) 可能显示与 var_dump(getenv()); 看见 variables order 详细信息。

    3. 要查看可用内容,请尝试:

    var_dump($_ENV);
    
    var_dump(getenv());
    
    var_dump($_SERVER);