2013-12-16 12 views
5

Quando ho fatto bundle exec cap production deploy, ho ricevuto i messaggi di errore come mkdir: cannot create directory /usr/share/nginx/www/appname/releases/20131216155457: Permission deniedQuando Capistrano3 fa mkdir, Autorizzazione negata

Capistrano3 non ha set use_sudo e default_run_options. Ho letto che sudo senza password è migliore, così ho fatto il visudo username ALL=NOPASSWD:ALL, ma ho ancora gli stessi errori.

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 

Qualcuno mi ha dato qualche consiglio su questo problema? Grazie per il vostro aiuto.

+0

avete fatto eseguire 'cap production deploy: setup' prima? Esistono tutte le directory madri? – iltempo

+0

Capistrano3 non sembra avere 'cap production deploy: setup'. Ma ho fatto un 'cap production deploy: check', e ho verificato che esistessero tutte le directory madri. –

+0

@YukiIshikawa E tutte le autorizzazioni sono corrette? Come 'username' puoi creare quella directory da solo, una volta che hai inserito ssh'd? –

risposta

5

provare a impostare il gruppo e proprietario della appname cartella

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

dove Deployer è l'utente implementare e di gruppo è il gruppo di utenti

0

Dovrebbe essere

chown username:groupname -R /path/to/project 
Problemi correlati