我正在尝试设置我的生产服务器以进行保留。 我已经设置了我的deploy.rb:
set :application, "myappname"
set :domain, "#{application}.eu"
set :deploy_to, "/#{application}" # I don't know if this is correct?
default_run_options[:pty] = true
#set :repository, "#{domain}:/var/repos/#{application}.git"
set :repository, "/home/username/myappname"
set :scm, :git
set :deploy_via, :rsync_with_remote_cache
set :model_manager, "doctrine"
role :web, domain
role :app, domain
role :db, domain, :primary => true
set :keep_releases, 3
set :user, "mylogintossh"
set :use_sudo, false
它正在尝试创建/ myappname / myappname / releases / myappname / shared / myappname / shared / app / logs / myappname / shared / web / uploads
但是许可被拒绝了。 我在这做错了什么? :) THX。
答案 0 :(得分:1)
您确定用户mylogintossh
是否有权在那里创建目录?尝试登录并检查该目录的权限。
作为一种解决方法,您可以将用户置于sudoers并将use_sudo
设置为true
或将/myappname
的权限设置为777
。
答案 1 :(得分:0)
您可以添加
set :admin_runner, "my_apps_username"
在config / deploy.rb中。或者,您可以覆盖deploy:setup任务,如下所示:
namespace :deploy do
task :setup, :except => { :no_release => true } do
dirs = [deploy_to, releases_path, shared_path]
dirs += shared_children.map { |d| File.join(shared_path, d.split('/').last) }
run "mkdir -p #{dirs.join(' ')}"
run "chmod g+w #{dirs.join(' ')}" if fetch(:group_writable, true)
end
end