本文摘自PHP中文网,作者(*-*)浩,侵删。
有两种环境变量会影响Apache HTTP Server。首先,存在由底层操作系统控制的环境变量。这些是在服务器启动之前设置的。它们可以在配置文件的扩展中使用,也可以使用PassEnv指令传递给CGI脚本和SSI。 ( 推荐学习:Apache服务器 )
其次,Apache HTTP Server提供了一种机制,用于在命名变量中存储信息,这些变量也称为环境变量。此信息可用于控制各种操作,如日志记录或访问控制。变量还用作与外部程序(如CGI脚本)通信的机制。本文将讨论了操作和使用这些变量的不同方法。
尽管这些变量称为环境变量,但它们与底层操作系统控制的环境变量不同。相反,这些变量在内部Apache结构中存储和操作。
它们仅在提供给CGI脚本和服务器端包含脚本时才成为实际的操作系统环境变量。如果您希望操作服务器本身运行的操作系统环境,则必须使用操作系统shell提供的标准环境操作机制。
设置环境变量
基本环境操作
在Apache中设置环境变量的最基本方法是使用无条件的SetEnv指令。也可以使用PassEnv指令从启动服务器的shell环境传递变量。
有条件的每请求设置
为了提高灵活性,mod_setenvif提供的指令允许在每个请求的基础上设置环境变量,具体取决于特定请求的特征。
例如,只有在特定浏览器(用户代理)发出请求时,或者仅在找到特定的Referer [sic]标头时才能设置变量。通过mod_rewrite的RewriteRule可以获得更大的灵活性,它使用[E = ...]选项来设置环境变量。
相关阅读 >>
如何使用ubuntu18.04和16.04 lts上let’s encrypt保护Apache
更多相关阅读请进入《Apache》频道 >>