我正在使用 Capistrano 将 Ruby on Rails 应用程序部署到运行 Ubuntu 11.10 的 VPS。但是,每当我运行 cap:deploy 时都会收到此错误:
cd: 1: can't cd to /var/www/appname/releases
我使用的 VPS 是 Linode。本地我使用的是 Mac OS X 10.7.2 Lion。
另外,我正在使用 git、Passenger 和 Ngninx,虽然我认为它们没有什么区别,但我认为这与文件夹权限和 SSH 有关。
这是 deploy.rb
set :user, "name"
set :application, "appname"
set :domain, "000.000.201.001"
set :repository, "."
set :use_sudo, true
set :deploy_to, "/var/www/#{application}"
set :scm, "none"
set :deploy_via, :copy
role :app, domain
role :web, domain
role :db, domain, :primary => true
namespace :deploy do
task :start, :roles => :app do
run "touch #{current_release}/tmp/restart.txt"
end
task :stop, :roles => :app do
# Do nothing.
end
desc "Restart Application"
task :restart, :roles => :app do
run "touch #{current_release}/tmp/restart.txt"
end
end
答案1
尝试将以下内容添加到 deploy.rb:
before 'deploy:update', :create_release_folder
task :create_release_folder do
run "sudo mkdir -p #{deploy_to}/releases"
end