Passenger, Nginx и Capistrano - Passenger вообще не запускает приложение Rails - PullRequest
4 голосов
/ 10 ноября 2009

По сути, мой маршрут работает отлично, Пассажир, кажется, загружается - все в порядке. За исключением того, что ничего Railsy не происходит. Вот мой журнал Nginx от запуска сервера до первого запроса (игнорируйте другой домен / маршрут - это потому, что я еще не перенес новый домен, и он возвращает ошибку 403, потому что в общей папке нет файла индекса):

[ pid=24559 file=ext/nginx/HelperServer.cpp:826 time=2009-11-10 00:49:13.227 ]:
  Passenger helper server started on PID 24559
[ pid=24559 file=ext/nginx/HelperServer.cpp:831 time=2009-11-10 00:49:13.227 ]:
  Password received.
2009/11/10 00:49:53 [error] 24578#0: *1 directory index of "/var/www/***/current/public/" is forbidden, client: 188.221.195.27, server: ***, request: "GET / HTTP/1.1", host: "***"
2009/11/10 00:49:54 [error] 24578#0: *1 open() "/var/www/***/current/public/favicon.ico" failed (2: No such file or directory), client: 188.221.195.27, server: ***, request: "GET /favicon.ico HTTP/1.1", host: "***", referrer: "***"

Кто-то на IRC-канале RubyOnRails предположил, что это может быть проблема с разрешениями веб-сервера. У меня было подозрение, что это может быть проблема с правами доступа к файловой системе, но тогда Nginx запускается как www-data, а Passenger - как root.

Я могу нормально загружать статические файлы из публичного каталога, но приложение Rails не запускается. У кого-нибудь есть идея? Моя голова постепенно тает, разбираясь с этим!

Редактировать: вот файл vhost:

server {
        listen       80;
        server_name  ***;
        passenger_enabled on;

        location / {
            root   /var/www/***/current/public;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

1 Ответ

6 голосов
/ 10 ноября 2009

Проблема решена, я гаечный ключ.

У меня был 'passenger_enabled;' внутри 'местоположение /' не 'сервер'. Настоящим я сдаю свои кодовые руки.

...