我在使用 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 也没有给出任何提示。除了有关资产编译和迁移的一些信息之外,它几乎没有任何信息。
所以我很难过。当一切顺利时,我认为我所做的一切都与测试应用程序相同,但显然我忘记了一些事情。让我知道是否可以发布任何文件来帮助诊断问题。感谢帮助!
我的部署.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:不知道为什么,但我意识到我可以访问应用程序公用文件夹中的资产。这是什么意思!?