我在使用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:不确定原因,但我意识到我可以访问我应用的公共文件夹中的资源。这是什么意思!?
答案 0 :(得分:0)
您是否正确配置了Nginx?虚拟主机的root必须指向Ruby on Rails应用程序的公用文件夹。使用Nginx with Phusion passenger的文档可能有所帮助。尝试检查Nginx日志文件access.log
和error.log
,可能会在/var/log/nginx
中找到它们。