Я тоже спросил об этом в stackoverflow, но до сих пор не получил ответов, которые помогли бы мне решить эту проблему. Я потратил почти неделю на то, чтобы решить эту проблему, и у меня просто нет никаких успехов. Кажется, что эта проблема довольно распространена, но ни одно из решений, которые я нашел в Интернете, не работает для меня. Мой приятель на самом деле создает такую же настройку, и у него такая же проблема.
Через несколько дней, когда я столкнулся с ошибкой 403, я начал заново использовать этот учебник: http://blog.ninjahideout.com/posts/a-guide-to-a-nginx-passenger-and-rvm-server
Я надеялся, что начать с нуля, используя этот урок, сработает, но без кубиков. В любом случае, если вы просмотрите руководство, вы увидите, какие шаги я предпринял.
Вот, по сути, то, что я делаю.
================================================== ================================
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 / Release / current_release, и он будет отображаться. Но рельсы не годные.
Вот в основном это. На данный момент я почти полностью исчерпал все возможные попытки решения, которые только мог придумать. Я программист и определенно не системный администратор, поэтому я на 99% уверен, что это как-то связано с предоставленными мною разрешениями, но, черт возьми, я просто не могу понять, где.
Если кто-то может помочь, я был бы очень признателен. Если есть какие-то конкретные разрешения, которые вы хотите, чтобы я проверил (например, группы / разрешения), не могли бы вы также включить команды для этого. Надеюсь, в будущем это поможет другим, кто прочитает этот пост.
Сообщите мне, если есть еще какая-либо информация, которую я могу предоставить, и заранее спасибо !!!
Убедитесь, что запущенный пользователь nginx, в большинстве случаев это никто, имеет разрешение на чтение вашего домашнего каталога; или измените nginx.conf, используя другого пользователя для запуска рабочего процесса.
Я бы проверил следующее:
Кажется, твои пути запутались.
/home/deployer/webapps/mysite.com/public/releases/most_current_release
должен выглядеть
/home/deployer/webapps/mysite.com/live/current/public
и
/home/deployer/webapps/mysite.com/live/current
должна быть ссылка на
/home/deployer/webapps/mysite.com/live/releases/most_current_release
обычно структура каталогов capistrano следующая
где deploy_to твое /home/deployer/webapps/mysite.com/live
Надеюсь, поможет
Хм:
root /home/deployer/webapps/mysite.com/public/current;
Разве это не должно быть так?
root /home/deployer/webapps/mysite.com/current/public;