2013-12-16 3 views
5

Когда я bundle exec cap production deploy, я получил сообщение об ошибке, как mkdir: cannot create directory /usr/share/nginx/www/appname/releases/20131216155457: Permission deniedКогда Capistrano3 делает MkDir разрешение отказано

Capistrano3 не set use_sudo и default_run_options. Я читал, что Passwordless sudo лучше, поэтому я сделал visudo username ALL=NOPASSWD:ALL, но все же у меня были те же ошибки.

set :application, 'appname.com' 
set :repo_url, '[email protected]:user/myapp.git' 
set :user, 'username' 
set :branch, 'master' 


set :deploy_to, '/usr/share/nginx/www/appname' 
set :keep_releases, 5 

namespace :deploy do 

desc 'Restart application' 
task :restart do 
    on roles(:app), in: :sequence, wait: 5 do 
    end 
end 

after :restart, :clear_cache do 
    on roles(:web), in: :groups, limit: 3, wait: 10 do 
    end 
end 

after :finishing, 'deploy:cleanup' 

end 

Кто-нибудь дает мне какие-либо советы по этой проблеме? Благодарим вас за помощь.

+0

ли вам запустить 'cap production deploy: setup' first? Существуют ли все родительские каталоги? – iltempo

+0

У Capistrano3, похоже, нет 'cap production deploy: setup'. Но я сделал 'cap production deploy: check', и я проверил все родительские каталоги. –

+0

@YukiIshikawa И все разрешения правильные? Как «имя пользователя» вы можете создать этот каталог самостоятельно, как только ssh'd? –

ответ

5

Попробуйте установить группу и владелец appname папки

chown deployer:www-data -R /usr/share/nginx/www/appname

где Установщик является вашим пользователем развертывания и группой группы пользователей

0

Это должно быть

chown username:groupname -R /path/to/project 
Смежные вопросы