SetEnv不更新我的环境变量(菜鸟警告)

时间:2018-12-23 04:11:07

标签: apache

我仍然是Apache noob,并且尝试设置一个环境变量,该变量将由Rails应用程序使用。

我已经读过https://httpd.apache.org/docs/2.4/mod/mod_env.html#setenv,并做了一些Google和SO搜索。我至少确定要分配的值必须用引号引起来。但是,当我运行sudo service apache2 restart时,SECRET_KEY_BASE的值仍然不正确(通过printenv查看)。我不知道我不知道。我缺少一些步骤吗?

在我的Apache配置中,我有:

SetEnv SECRET_KEY_BASE "e10e721..."

# Tell Apache and Passenger where your app's 'public' directory is
DocumentRoot /var/www/some_path

请让我知道我可能需要分享的其他信息。感谢您的关注。

1 个答案:

答案 0 :(得分:0)

这里有一些细微的陷阱。

首先:您无法在从中运行该命令的终端中对其进行检查。 “ SetEnv”设置每个请求的内部变量,该变量将被复制到服务器随后执行的类似CGI的进程中。

第二,即使您设置了真实的本机环境变量(例如,在/ etc / apache2 / envvars中),也不应执行restart操作,因为这不一定会重新加载该特定文件。您应该停下来再开始。在启动服务器的命令中,您仍然看不到该变量,因为它只是在Web服务器进程中。

如果要查看正在运行的进程的环境,可以编写基本的CGI来转储传递给CGI脚本的环境。如果您是PHP用户,则带有phpinfo()的基本脚本会将其转储。

或者,您可以使用ps确定Apache的进程ID,然后检查/ proc / $ thepid / env(在Linux上)。