我正在将我的第一个ROR应用程序放在NginX和Passenger上。我正在关注整个网络上的教程,当我尝试访问我的主页时,我遇到以下错误。
我使用命令行创建了一个控制器home_controller.rb。我还在命令行创建了视图,它创建了一个默认的ERB文件。
nginx服务正在运行,我通过“乘客启动”手动启动乘客。我可以看到乘客接受传入的HTTP请求,如以下错误。但奇怪的是,它正在查看我的ruby应用程序的公共文件夹中的home / index。我使用了“rails generate [controller / view] foo”,它将文件写在公共区域之外。
我的nginx配置配置为指向我的ROR项目的公共文件夹。
我使用的是ROR 2.0.0,Phusion Passenger 4.0.29和nginx 1.1.19。
我在Passenger中遗漏了一些东西,告诉它控制器/视图/等等。是
MJ
2013/12/13 15:20:12 [error] 18305#0: *4 "/usr/development/sandbox/app/public/index.html"
is not found (2: No such file or directory), client: 127.0.0.1, server: _, request: "HEAD /
HTTP/1.1", host: "0.0.0.0"
2013/12/13 15:20:13 [error] 18305#0: *5 "/usr/development/sandbox/app/public/index.html"
is not found (2: No such file or directory), client: 127.0.0.1, server: _, request: "GET
HTTP/1.1", host: "localhost:3000"
2013/12/13 15:20:18 [error] 18305#0: *5 open()
"/usr/development/sandbox/app/public/home/index" failed (2: No such file or directory),
client: 127.0.0.1, server: _, request: "GET /home/index HTTP/1.1", host: "localhost:3000"
2013/12/13 15:27:11 [error] 18305#0: *13 open()
"/usr/development/sandbox/app/public/home/index" failed (2: No such file or directory),
client: 127.0.0.1, server: _, request: "GET /home/index HTTP/1.1", host: "localhost:3000"
编辑0 - 如果我使用“rails server”,一切似乎都正常工作/编辑0
答案 0 :(得分:0)
你正在以错误的方式使用Phusion Passenger。
Phusion Passenger提供3 modes:一种独立模式(一种作为独立的Web服务器运行),一种Nginx集成模式和一种Apache集成模式。通过运行passenger start
,您正在使用其独立模式。
您还正在运行Nginx。从您的日志中,您似乎正在访问Nginx。但这没有任何作用。 Passenger独立运行,不在Nginx内部运行。
在图表中:
Nginx <--------------------- [Your request]
(Not integrated with Passenger,
so doesn't know what to do with
your request)
Passenger Standalone
(waiting for your request,
but you never sent one
to it)
所以,如果你使用rails server
:
Nginx
(not receiving any
requests from you)
rails server <--------------- [Your request]
你真正想要的是访问Passenger Standalone,它就像rails server
一样 - 侦听端口3000.实际上,Passenger Standalone在启动时告诉你它正在侦听端口3000。
Nginx
(not receiving any
requests from you;
so you may as well
disable it)
Passenger Standalone <--------------- [Your request]