2010-04-28 115 views
5

我一直在研究这一个,并发现在这里和那里的类似问题的参考,但没有一个导致了解决方案。我已经安装了乘客(2.2.11)和nginx(0.7.64),当我启动并打到Rails URL时,出现一个错误页面,通知我加载错误:乘客问题:“没有这样的文件加载” -/config/environment

没有要加载的文件 - /路径/到/应用程序/配置/环境

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

感谢您的任何建议。

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

+0

您应该将解决方案的问题移到自己的答案上,然后将答案标记为已接受。 – 2010-04-29 14:30:11

回答

2

当然,它只是把我发布的问题绊倒在答案上。为了向搜索这个问题的其他人提供信息,我会在这里发布一些细节。

从nginx.conf相关线:

用户WWW的数据; #为了让nginx不以root身份运行

passenger_default_user www-data; #同样适用于乘客

root/opt/foo/app/current/public;

此时的关键在于确保应用程序文件由www-data拥有,特别是config/environment.rb,因为显然Passenger会查看其所有者以确定运行方式。这可能意味着passenger_default_user条目是不相关的?但是,无论如何,将它作为意向文档也许是件好事。

最后,请确保您的应用程序的父目录都可以通过www-data访问 - 在我的情况下,系统默认设置已经离开了目录0700,我错过了。

+0

如何设置一个* PassengerUser *如[文档]中所述(http://www.modrails.com/documentation/Users%20guide%20Apache.html#_passengeruser_lt_username_gt)? – JJD 2012-06-01 14:05:26

1

现代乘客更喜欢机架导轨。如果您的Rails应用程序中有config.ru,则Passenger会尝试将其作为Rack应用程序加载。这可能会导致问题。特别是,您的错误消息指的是config/environment - 请注意缺少Rails应用程序中典型的.rb扩展。

尝试移动config.ru,如果它存在的话。

+1

感谢您的想法 - 我在其他地方也看到了关于Rack偏好的说明,但这是一个普通的旧Rails应用程序。缺少.rb扩展名对我来说似乎很奇怪,并且我还没有找到任何解释... – Masonoise 2010-04-28 21:14:52

+0

那么我试过了,现在我的服务器是100%静态的... – Antzi 2016-05-25 01:49:11

相关问题