【问题标题】:Problem starting Passenger with Nginx使用 Nginx 启动乘客时出现问题
【发布时间】:2012-05-03 07:41:00
【问题描述】:

我刚刚使用 Nginx 设置了Passenger,它似乎安装得很好,但是当我运行它时,我尝试通过以下方式启动它:

passenger start -e production

我明白了:

=============== Phusion Passenger Standalone web server started ===============
PID file: /root/rails_apps/myapp/tmp/pids/passenger.3000.pid
Log file: /root/rails_apps/myapp/log/passenger.3000.log
Environment: production
Accessible via: http://0.0.0.0:3000/

You can stop Phusion Passenger Standalone by pressing Ctrl-C.
===============================================================================
2011/04/18 07:17:27 [error] 9125#0: *4 "/root/rails_apps/myapp/public/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: _, request: "HEAD / HTTP/1.1", host: "0.0.0.0"

当我尝试在浏览器中访问我的网站时,我收到“无法连接”。

这里是 nginx.conf 中的配置

   server {
      listen 80;
      server_name myapp.com;
      root /root/rails_apps/myapp/public;   # <--- be sure to point to 'public'!
      passenger_enabled on;
   }

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails nginx passenger


    【解决方案1】:

    这个错误似乎是因为 nginx 的用户无法访问提到的文件。不仅 /root/rails_apps/myapp/public 没有正确的权限,即使 父目录 之一没有正确的权限,也可能导致此问题!

    在您的 nginx.conf 中,您可以看到如下内容:

    user nginx;
    
    http {
        # blah.
    }
    

    user 的参数有时可能不同。确保 all 文件夹在路径中可供此用户使用。 你可以通过sudo -Hu nginx /bin/bash -lcat /root/rails_apps/myapp/public/index.html查看。用这个命令再测试一遍,直到看不到文件的内容。

    一点解释:使用该 sudo 命令,您可以作为用户 nginx 启动一个 shell。并且使用cat 命令可以模拟文件读取。

    【讨论】:

      【解决方案2】:

      试试这个:

      sudo passenger start -e production
      

      【讨论】:

      • 尝试将/root/rails_apps/myapp/public目录的权限改为755。
      • @Surya 将其更改为 755 是一个坏主意,它可以工作,但它不适合生产环境。您可能只需要将有问题的文件 chown 到 nginx:nginx 或任何使用正在运行 nginx 的文件,同时保留文件 644。
      【解决方案3】:

      由于你指定的路径在/root(/root/rails_apps/myapp/public),nginx应该有足够的权限:

      user root;在 nginx.conf 中

      您还应该以超级用户 (sudo) 身份启动 nginx

      但最好将您的 rails 应用程序移动到您的用户目录的某个位置,并将所需的权限授予默认 nginx 用户“www-data”

      user www-data;
      

      【讨论】:

      • 我以 root 身份运行!我还需要这样做吗?
      猜你喜欢
      • 2012-02-14
      • 2019-12-17
      • 2011-09-07
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多