在ubuntu linux上使用nginx的乘客 - 无法识别我的应用程序

时间:2013-04-16 14:50:25

标签: ruby-on-rails nginx passenger

我在带有宝石的rvm上安装乘客

gem install passenger

然后用它安装nginx

rvmsudo passenger-install-nginx-module

并编辑了/opt/nginx/nginx.conf文件,将这两行添加到服务器问题中:

passenger_enabled on; 
root /home/snir/my_app/public;

但是运行乘客(在停止nginx系统服务之后)给我这个输出:

Environment: development
Accessible via: http://0.0.0.0:3000/

You can stop Phusion Passenger Standalone by pressing Ctrl-C.
===============================================================================
2013/04/16 17:47:08 [error] 4730#0: *4 "/home/snir/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"

并浏览到0.0.0.0:3000给我一个404找不到的nginx页面。 怎么了?为什么乘客在/ home / snir / public中寻找app而不是我在nginx.conf文件中给出的路由,这是/ home / snir / my_app / public?

编辑:

所以似乎nginx没有与乘客相连,因为它没有出现在nginx的--add-module上。但是我正确安装了它,所以可能是其他一些与ubuntu一起使用的nginx安装与乘客安装相冲突。

3 个答案:

答案 0 :(得分:0)

我对您的系统了解不多,但问题可能是您使用了错误的配置文件。大多数unix base系统nginx配置文件位于/etc/nginx/nginx.conf和/ etc / nginx / sites-enabled / some-site,这是到/ etc / nginx / sites-available / some-site的软链接。如果您有疑问,可以尝试在文件中添加一个明显错误,您认为是您的系统正在使用的配置文件,并重新启动nginx以查看是否存在错误或继续没有问题。

答案 1 :(得分:0)

我最近在DigitalOcean.com上设置了要部署到我的VPS的服务器,并发现他们的支持文章非常有用。这是一个可能有助于您的具体情况。 https://www.digitalocean.com/community/articles/how-to-install-rails-and-nginx-with-passenger-on-ubuntu

答案 2 :(得分:0)

也许你的nginx.conf不正确(我的位置是/opt/nginx/conf/nginx.conf)

我找到了一个适合我的解决方案 - > Configure nginx.conf for Rails Shows File Directory Not Index