使用Capistrano部署Rails应用程序 - 无响应

时间:2012-06-01 05:57:07

标签: ruby-on-rails ruby nginx passenger capistrano

我在使用capistrano将rails应用程序部署到VPS时遇到了一些麻烦。我正在运行ubuntu 10.04,rvm,rails 3.2.2和ruby 1.9.2,nginx和乘客。

我尝试部署一个没有问题的测试应用程序,然后尝试以几乎相同的方式使用实际应用程序执行所有操作,现在我遇到了麻烦。我运行了cap deploy:setup,cap deploy:check,cap deploy:cold,没有任何错误。

然而,当我尝试访问该网站时,我得不到回复。我也无法访问静态资产。我的nginx.conf文件指向'app_name / current / public'

production.log也没有提供任何提示。除了有关资产编译和迁移的一些信息外,它几乎没有任何内容。

所以我很难过。我觉得我做的一切都和测试应用程序一样,当一切顺利但显然我忘了什么。如果有任何文件我可以发布以帮助诊断问题,请告诉我。感谢帮助!

我的deploy.rb:

# RVM

$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"
set :rvm_ruby_string, 'default'
set :rvm_type, :user

# Bundler

require "bundler/capistrano"

# General

set :application, "my_app"
set :user, "deploy_user"

set :deploy_to, "/home/#{user}/#{application}"
set :deploy_via, :copy

set :use_sudo, false

set :normalize_asset_timestamps, false

# Git

set :scm, :git
set :repository,  "~/#{application}/.git"
set :branch, "master"

# VPS

role :web, "app_name.com"
role :app, "app_name.com"
role :db,  "app_name.com", :primary => true

# Passenger

namespace :deploy do
 task :start do ; end
 task :stop do ; end
 task :restart, :roles => :app, :except => { :no_release => true } do
   run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
 end
end

编辑1 nginx access.log显示了很多这些:

[01/Jun/2012:11:23:11 -0400] "-" 400 0 "-" "-"

和error.log包含以下内容:

cache: [GET /] miss

编辑2:不确定原因,但我意识到我可以访问我应用的公共文件夹中的资源。这是什么意思!?

1 个答案:

答案 0 :(得分:0)

您是否正确配置了Nginx?虚拟主机的root必须指向Ruby on Rails应用程序的公用文件夹。使用Nginx with Phusion passenger的文档可能有所帮助。尝试检查Nginx日志文件access.logerror.log,可能会在/var/log/nginx中找到它们。