【问题标题】:what is the source of the $_SERVER super global in PHP ?PHP 中 $_SERVER 超级全局的来源是什么?
【发布时间】:2017-08-24 10:15:18
【问题描述】:

在命令行上运行脚本:

php testfile.php

该文件包含以下内容:

echo print_r($_SERVER, true);

我注意到它在终端输出中有 JAVA_HOME 和 PATH 变量。我尝试将我自己的变量添加到 /etc/environment (Linux),假设它正在使用这些变量,但它们没有出现。

那么这些变量是在哪里定义的,我可以添加自己的变量吗?

【问题讨论】:

    标签: php linux global-variables


    【解决方案1】:

    来自 PHP 文档(我推荐):

    $_SERVER 是一个包含诸如标题、路径和脚本位置等信息的数组。此数组中的条目由 Web 服务器创建。无法保证每个 Web 服务器都会提供其中任何一个;服务器可能会省略一些,或提供此处未列出的其他内容。也就是说,在 » CGI/1.1 规范中说明了大量这些变量,因此您应该能够预料到这些变量。

    更详细的解释请看这里:http://php.net/manual/en/reserved.variables.server.php

    您可以在 apache 配置中使用 以SetEnv ENVIRONMENT "production" 为例。

    也看看这个问答How to set global environment variables for PHP

    【讨论】:

      【解决方案2】:

      根据PHP Documentation上的$_SERVER超全局:

      此数组中的条目由 Web 服务器创建。无法保证每个 Web 服务器都会提供其中任何一个;服务器可能会省略一些,或提供此处未列出的其他内容。也就是说,大量这些变量都在 »CGI/1.1 specification

      因此实施取决于您的网络服务器软件。对于 Apache,一些索引(如 REMOTE_HOST)来自配置文件 httpd.conf

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多