首页 > 解决方案 > 用户输入后为 apache 设置环境变量

问题描述

我需要在用户输入后传递一些动态环境变量以用作 PHP 的变量。

我已经有一个脚本可以导出用户输入的变量

#!/bin/bash
export APACHE_ENV_VAR0 = $1
export APACHE_ENV_VAR1 = $2

之后,我检查了值,一切正常。然后我在我的 httpd.conf 中设置以下内容

SetEnv APACHE_ENV_VAR0 ${APACHE_ENV_VAR0}
SetEnv APACHE_ENV_VAR1 ${APACHE_ENV_VAR1}

#Also tried with PassEnv directive

问题是输出总是错误的,所以它没有找到那些变量。

这个想法是在我执行脚本并设置我的变量后,启动 httpd 并使用这些变量,但没有按预期工作。

我的环境是centos,apache2.4和php5.4

关于如何做到这一点的任何想法。需要用户输入。

提前致谢!

标签: phpapacheenvironment-variables

解决方案


最可能的罪魁祸首是 Apache 作为不同的用户在不同的上下文中启动,并且没有设置这些环境变量。更直接的方法是保留 httpd.conf 的原始副本作为模板。在其中搜索并替换您需要的变量值,然后使用修改后的文件启动 Apache。

例如在模板文件 SetEnv APACHE_ENV_VAR0 ^REPLACE_ME^


推荐阅读