gpt4 book ai didi

PHP 和 Apache 环境变量

转载 作者:可可西里 更新时间:2023-11-01 12:30:36 24 4
gpt4 key购买 nike

我想在启动时将 linux 中的环境变量传递给 apache。

导出 MYVAR=5--我在命令行定义我的环境变量

PassEnv MYVAR--设置apache在apache配置文件中导入变量

apachectl 重启--当我重新启动 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 中),然后将 PassEnv MYVAR 添加到 apache 配置中需要的位置。

重新启动 apache 应该确保传递了 MYVAR 环境变量。据我所知,虽然 apache 正在运行,但您将无法更改此 var 的值...

CentOS 的一些相关信息:http://php.dzone.com/news/inserting-variable-headers-apa&default=false&zid=159&browser=16&mid=0&refresh=0

关于PHP 和 Apache 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2941136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com