3

我正在尝试为 capifony 设置我的生产服务器。我已经像这样设置了 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

但许可被拒绝。我在这里做错了什么?:) 谢谢。

4

2 回答 2

1

您确定该用户mylogintossh有权在那里创建目录吗?尝试登录并检查该目录的权限。

作为一种解决方法,您可以将您的用户设置为 sudoers 并设置use_sudo为 totrue或将权限设置为/myappnameto 777

于 2012-02-05T07:11:21.590 回答
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
于 2012-04-05T14:46:32.697 回答