我想在启动时将
linux中的环境变量传递给apache.
出口MYVAR = 5
– 我在命令行上定义我的环境变量
PassEnv MYVAR
– 设置apache以在apache配置文件中导入变量
apachectl重启
– 当我重新启动apache时,我没有收到错误消息.但是我注意到了
如果我在第一步中没有创建环境变量,我会收到一条警告信息,所以必须在这里工作
echo $_SERVER [‘MYVAR’]
–i尝试访问PHP中的环境变量,但未定义
我观察到如果我尝试PassEnv一个已经退出的环境变量(我自己没有创建的那个)它可以正常工作. SetEnv指令也可以正常工作.
我真的很想动态地将环境变量传递给apache而不将其写入文件中.非常感谢.
我正在使用CentOS,PHP5和Apache2.
谢谢.
更新
如果我直接使用httpd调用apache启动而不使用apachectl这是一个shell脚本,似乎环境变量被传递.我原以为“导出”会将变量导出到shell脚本中吗?我不是一个Linux大师,所以请原谅我缺乏知识.
如果您希望将环境变量传递给apache,则应确保为运行apache的环境定义了所述环境变量.为此,最简单的选择是向envvars添加导出MYVAR =值行(应该位于/ etc / apache2)或启动apache的脚本(在/etc/init.d中),并在您的apache配置中将PassEnv MYVAR添加到所需的位置.
重新启动apache应确保传递MYVAR环境变量. AFAIK你将无法在apache运行时更改此var的值…
CentOS的一些相关信息:http://php.dzone.com/news/inserting-variable-headers-apa&default=false&zid=159&browser=16&mid=0&refresh=0