加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Phusion Passenger 4&nginx在Ubuntu Lin

发布时间:2020-12-17 03:32:34 所属栏目:百科 来源:网络整理
导读:根据 https://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html#env_vars_passenger_apps 15.3.5的文档,Phusion Passenger应该从.bashrc中读取环境变量.我正在尝试使用nginx和Phusion passenger从名为rails的用户帐户运行rails 4.2应用程
根据 https://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html#env_vars_passenger_apps 15.3.5的文档,Phusion Passenger应该从.bashrc中读取环境变量.我正在尝试使用nginx和Phusion passenger从名为rails的用户帐户运行rails 4.2应用程序,并在我尝试在浏览器中加载时出现502错误的网关错误.该过程在正确的用户下运行.当我在rails app目录中打开ruby控制台时,我会看到来自我的bashrc的环境变量,包括secret_key_base.但是当我关闭我的nginx日志时,我得到的错误是它无法找到secret_key_base.我尝试在其他地方添加它,包括/etc/bash.bashrc和/etc/nginx.conf.

解决方法

我找到了这个可怕问题的答案.答案是在 https://github.com/phusion/passenger/wiki/Debugging-application-startup-problems的“Bash提前终止”标题下.事实证明,如果shell不是交互式的,则Ubuntu .bashrc不会运行. Phusion Passenger不在交互式shell中运行.因此,我们不会为Phusion Passenger流程加载这些环境变量.

迈克的评论正在进行中.如果您正在使用rvm,那么nginx指向一个ruby脚本,您可以在ruby启动之前将环境变量放入其中.

passenger_ruby /home/rails/.rvm/gems/ruby-2.2.1@was_i_towed/wrappers/ruby;

是我的nginx.conf文件中的一行.如果我用vi或nano打开这个包装器,那么我可以将EXPORT SECRET =添加到文件的顶部并且它可以工作.

其他文献表明,在/ etc / environment中设置环境变量也应该有效.

升级到Phusion Passenger 5时也应该解决这个问题,Phusion Passenger 5具有在nginx.conf中指定环境变量的工具.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读