我仍然是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
请让我知道我可能需要分享的其他信息。感谢您的关注。
答案 0 :(得分:0)
这里有一些细微的陷阱。
首先:您无法在从中运行该命令的终端中对其进行检查。 “ SetEnv”设置每个请求的内部变量,该变量将被复制到服务器随后执行的类似CGI的进程中。
第二,即使您设置了真实的本机环境变量(例如,在/ etc / apache2 / envvars中),也不应执行restart
操作,因为这不一定会重新加载该特定文件。您应该停下来再开始。在启动服务器的命令中,您仍然看不到该变量,因为它只是在Web服务器进程中。
如果要查看正在运行的进程的环境,可以编写基本的CGI来转储传递给CGI脚本的环境。如果您是PHP用户,则带有phpinfo()的基本脚本会将其转储。
或者,您可以使用ps
确定Apache的进程ID,然后检查/ proc / $ thepid / env(在Linux上)。