Я провел последние несколько дней, пытаясь решить эту проблему, и я просто не продвигаюсь вперед. Я на самом деле просто создал учетную запись stackoverflow специально, чтобы задать этот вопрос. Кажется, что эта проблема довольно распространена, но ни одно из найденных мной решений не решило проблему за меня.
Вчера я наткнулся на этот урок: http://blog.ninjahideout.com/posts/a-guide-to-a-nginx-passenger-and-rvm-server
Я надеялся начать с нуля, используя этот учебник, но без кубиков. В любом случае, если вы посмотрите учебник, вы увидите, какие шаги я предпринял.
Вот, по сути, то, что я имею в виду.
- У меня есть аккаунт VPS на linode.com
- Серверная ОС - Ubuntu 10.04
- Для развертывания с Capistrano используется локальная ОС (не имеет значения, но только чтобы вы знали) - Snow Leopard 10.6.6
- Я использую RVM на сервере. Версия 1.2.2
- Ранее я работал на ruby-1.9.2-p0 [i386], но согласно приведенному выше уроку я переключился на ree-1.8.7-2010.02 [i386] .
- Выполнение ' which ruby ' из командной строки подтверждает, что я использую 1.8.7 со следующим выводом: / usr / local / rvm / rubies / ree-1.8.7-2010.02 / бен / рубин
- passenger -v печатает следующее: Phusion Passenger версия 3.0.2
- Я не уверен, как узнать, какая у меня версия nginx, но она должна быть самой последней, поскольку я установил ее вчера с помощью команд установщика для пассажиров, перечисленных в руководстве выше.
- У меня два пользователя , занимающихся установкой. root , который я использовал для установки всего, и deployer , который является пользователем, которого я специально создал для развертывания моих приложений
- Мой каталог веб-приложений находится в домашнем каталоге пользователя развертывания следующим образом: / home / deployer / webapps / mysite.com / public
- При развертывании Capistrano по умолчанию в общей папке создается символическая ссылка , называемая текущей , и указывает на /home/deployer/webapps/mysite.com/public/releases/most_current_release
- Я рекурсивно изменил каталог установщика на 777
- / opt / nginx права доступа: rwxr-xr-x
- / usr / local / rvm / gems / ree-1.8.7-2010.02 / gems / passenger-3.0.2 прав доступа: rwxrwsrwx
- Мой конфигурационный файл nginx претерпел лишь незначительные изменения, но в настоящее время выглядит так:
=============================================== ===================================
worker_processes 1;
events {
worker_connections 1024;
}
http {
passenger_root /usr/local/rvm/gems/ree-1.8.7-2010.02/gems/passenger-3.0.2;
passenger_ruby /usr/local/rvm/bin/passenger_ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
# listen *:80;
server_name mysite.com www.mysite.com;
root /home/deployer/webapps/mysite.com/public/current;
passenger_enabled on;
passenger_friendly_error_pages on;
access_log logs/mysite.com/server.log;
error_log logs/mysite.com/error.log info;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
=============================================== ===================================
Я прыгаю nginx, попадаю на сайт и бум. 403, и в журналах указывается индекс каталога / home / deployer ... запрещено
Как уже говорили другие с подобной проблемой, вы можете поместить index.html в public / Releases / current_release, и он будет отображаться. Но рельсы не работают.
Вот и все. На данный момент я почти полностью исчерпал каждую возможную попытку решения, о которой я могу думать. Я программист и определенно не являюсь системным администратором, поэтому я на 99% уверен, что это как-то связано с разрешениями, которые я использовал, но ради жизни я просто не могу понять, где.
Если кто-то может помочь, я бы очень признателен. Если есть какие-то конкретные разрешения, которые вы хотите, чтобы я проверил (например, группы / разрешения), не могли бы вы включить команды для этого. Надеюсь, в будущем это поможет другим, кто прочитает этот пост.
Дайте мне знать, если есть какая-либо другая информация, которую я могу предоставить, и спасибо заранее !!!