我想在启动时将linux中的环境变量传递给apache.
export MYVAR = 5 - 我在命令行上定义我的环境变量
PassEnv MYVAR - 设置apache以在apache配置文件中导入变量
apachectl restart - 当我重新启动apache时,我没有收到错误消息.但是我注意到如果我在第一步中没有创建环境变量,我会收到一条警告消息,所以必须在这里工作
echo $ _SERVER ['MYVAR'] - 我尝试访问PHP中的环境变量,但没有定义
我观察到,如果我尝试PassEnv一个已经退出的环境变量(我自己没有创建的环境变量),它可以正常工作.SetEnv指令也可以正常工作.
我真的很想动态地将环境变量传递给apache而不将其写入文件中.非常感谢.
我正在使用CentOS,PHP5和Apache2.
谢谢.
更新 似乎环境变量传递,如果我直接用httpd调用apache启动,而不是使用apachectl这是一个shell脚本.我原以为"导出"会将变量导出到shell脚本中吗?我不是linux大师,所以请原谅我缺乏知识.
如果您希望将环境变量传递给apache,则应确保为运行apache的环境定义了所述环境变量.为此,最简单的选择是export MYVAR=value
向envvars 添加一行(应位于/ 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