乘客问题:"没有这样的文件加载" - /config/environment

Mas*_*ise 5 ruby-on-rails passenger nginx

我一直在研究这个,并在这里和那里找到类似问题的参考,但它们都没有导致解决方案.我安装了乘客(2.2.11)和nginx(0.7.64),当我启动并点击Rails URL时,我得到一个错误页面,通知我一个加载错误:

没有这样的文件加载 - /path/to/app/config/environment

从我在网上找到的这似乎是某种用户/权限错误,但我已经尝试了所有逻辑修复:我已经确保/config/environment.rb不是root所有,而是由一个webapp用户.我尝试过设置passenger_default_user,我尝试过设置passenger_user_switching.我甚至尝试过设置nginx用户,尽管这并不重要.我得到了一些不同的结果,但实际上没有任何效果.我希望有人可能拥有这种神奇的设置和权限组合.我可能会尝试退回到早期版本的Passenger,因为我之前从未遇到过这个问题; 自从我成立Passenger之后已经有一段时间了.

谢谢你的任何建议.

编辑:见下面我偶然发现的答案.

Mas*_*ise 2

当然,我只是发布了问题就偶然发现了答案。为了向搜索此问题的其他人提供信息,我将在此处发布一些详细信息。

相关行来自nginx.conf

user www-data; # in order to have nginx not run as root

passenger_default_user www-data; # likewise for passenger

root /opt/foo/app/current/public;
Run Code Online (Sandbox Code Playgroud)

此时的关键是确保应用程序文件归 www-data 所有,特别config/environment.rb是因为显然 Passenger 会查看其所有者来确定以谁的身份运行。这可能意味着该passenger_default_user条目不相关?但无论如何,将其作为意图文档放置在那里也许是件好事。

最后,确保您的应用程序的父目录都可以通过以下方式访问www-data- 在我的情况下,系统默认设置留下了一个目录0700,我错过了。