1. Apache模块 mod_env
- 说明:Apache修改或清除传送到CGI脚本和SSI页面的环境变量
- 模块名:env_module
- 源文件:mod_env.c
本模块用于控制传送给CGI脚本和SSI页面的环境变量。所传送的环境变量可以来自调用 httpd 进程的shell,或者来自配置过程中所设定(set)或撤销(unset)的变量。
2. SetEnv 指令
- 说明:设置环境变量
- 语法:SetEnv env-variable value
- 作用域:server config, virtual host, directory, .htaccess
- 覆盖项:FileInfo
- 模块:mod_env
设置一个环境变量,该变量会传送到CGI脚本和SSI页面。
3. UnsetEnv 指令
- 说明:删除一个环境变量
- 语法:UnsetEnv env-variable [env-variable] …
- 作用域:server config, virtual host, directory, .htaccess
- 覆盖项:FileInfo
- 模块:mod_env
在传送到CGI脚本和SSI页面的环境中,删除一个或多个环境变量。
如何使用:
在php程序中,如果要连接数据库,我们会写一个以下的config文件,将数据库的连接信息保存。
这些都是比较敏感的信息,可以使用apache mod_env来保存。
在 apache virtualHost 的 中加入
然后打印$_SERVER
,在$_SERVER
中会有DBHOST DBUSER DBPASS三个数据了。
php db config文件改为
如果在某些地方需要删除部分的环境变量,例如在某页面不需要用到DBHOST,DBUSER,DBPASS,则可以使用UnsetEnv来删除
使用Env保存的数据只能在web读取,在php cli模式下是不能读取的,请根据具体需求使用。