Apache模块mod_env自定义配置$_SERVER常量

本文介绍如何使用Apache的SetEnv和UnsetEnv指令配置环境变量,包括全局和局部变量的设置方法,并展示了如何在PHP中利用这些环境变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SetEnv 指令
说明:设置环境变量
语法:SetEnv env-variable value
作用域:server config, virtual host, directory, .htaccess
覆盖项:FileInfo
模块:mod_env
设置一个环境变量,该变量会传送到CGI脚本和SSI页面。

SetEnv SITE_PATH /home/fdipzone/demosite 

UnsetEnv 指令
说明:删除一个环境变量
语法:UnsetEnv env-variable [env-variable] ...
作用域:server config, virtual host, directory, .htaccess
覆盖项:FileInfo
模块:mod_env
在传送到CGI脚本和SSI页面的环境中,删除一个或多个环境变量

启用mod_env模块

打开httpd.conf开启env_module (LoadModule env_module modules/mod_env.so前面去掉#)

在 apache virtualHost 的 <Directory>中加入

#全局自定义SERVER常量
<IfModule env_module>
	SetEnv GLOBAL_VARIABLE 192.168.1.1
</IfModule>

<VirtualHost *:80>
	DocumentRoot "D:/xampp/htdocs/"
	ServerName localhost

	#局部自定义SERVER常量
	SetEnv DBUSER fdipzone     
	SetEnv DBHOST 192.168.2.4  

	<Directory "D:/xampp/htdocs/">
	    #局部自定义SERVER常量
	    SetEnv DBPASS 123456   

		Options Indexes FollowSymLinks Includes ExecCGI
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
</VirtualHost>

 

然后打印$_SERVER,在$_SERVER中会有DBHOST DBUSER DBPASS三个数据了。

Array
(
[GLOBAL_VARIABLE] => 192.168.1.1
[DBHOST] => 192.168.2.4
[DBUSER] => fdipzone
[DBPASS] => 123456
[HTTP_HOST] => demo.fdipzone.com
[HTTP_USER_AGENT] => Mozilla/5.0 (Ubuntu; X11; Linux x86_64; rv:8.0) Gecko/20100101 Firefox/8.0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5
[HTTP_ACCEPT_ENCODING] => gzip, deflate
...

tips:全局的服务器所以虚拟主机可以访问,局部的只能在对应的VirtualHost才能用

 

php db config文件改为

<?php

return array(
    'database' => array(
        'host'     => $_SERVER['DBHOST'],
        'user'     => $_SERVER['DBUSER'],
        'password' => $_SERVER['DBPASS'],
    ),
);

?>

如果在某些地方需要删除部分的环境变量,例如在某页面不需要用到DBHOST,DBUSER,DBPASS,则可以使用UnsetEnv来删除

<IfModule mod_env.c>
UnsetEnv DBHOST DBUSER DBPASS
</IfModule>

 tips:使用Env保存的数据只能在web读取,在php cli模式下是不能读取的,请根据具体需求使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值