Exi*_*iRe 3 capistrano ruby-on-rails ubuntu-10.04
我想通过capistrano使用chmod来添加文件夹的权限.例如,我想这样做:
chmod 777 -R /vol/www/apps/ror_tutorial/current/log/
Run Code Online (Sandbox Code Playgroud)
所以,我想通过capistrano的任务来做到这一点.我试过了:
desc "Fix permission"
task :fix_permissions, :roles => [ :app, :db, :web ] do
run "#{try_sudo} chmod 777 -R #{current_path}/log"
end
after "deploy:update_code", :fix_permissions
Run Code Online (Sandbox Code Playgroud)
但它不起作用.该文件夹的权限是相同的:
$ ls -alh /vol/www/apps/ror_tutorial/current/log/
total 1008K
drwxrwxrwx 2 root root 4.0K 2012-02-03 20:22 .
drwxrwxr-x 7 root root 4.0K 2012-01-25 20:50 ..
-rwxrwxrwx 1 root root 419K 2012-02-03 14:35 development.log
-rwxrwxrwx 1 root root 530K 2012-02-03 20:16 production.log
-rwxrwxrwx 1 root root 0 2012-02-02 14:21 searchd.development.pid
-rwxrwxrwx 1 root root 15K 2012-02-03 20:22 searchd.log
-rw------- 1 root root 6 2012-02-03 20:22 searchd.production.pid
-rwxrwxrwx 1 root root 19K 2012-02-03 18:07 searchd.query.log
Run Code Online (Sandbox Code Playgroud)
如果我尝试通过ssh手动打印chmod,它可以工作:
$ chmod 777 -R /vol/www/apps/ror_tutorial/current/log/
$ ls -alh /vol/www/apps/ror_tutorial/current/log/
total 1008K
drwxrwxrwx 2 root root 4.0K 2012-02-03 20:22 .
drwxrwxr-x 7 root root 4.0K 2012-01-25 20:50 ..
-rwxrwxrwx 1 root root 419K 2012-02-03 14:35 development.log
-rwxrwxrwx 1 root root 530K 2012-02-03 20:16 production.log
-rwxrwxrwx 1 root root 0 2012-02-02 14:21 searchd.development.pid
-rwxrwxrwx 1 root root 15K 2012-02-03 20:22 searchd.log
-rwxrwxrwx 1 root root 6 2012-02-03 20:22 searchd.production.pid
-rwxrwxrwx 1 root root 19K 2012-02-03 18:07 searchd.query.log
Run Code Online (Sandbox Code Playgroud)
我怎样才能为capistrano写出正确的任务呢?
尝试在部署后更改钩子:符号链接,我认为您正在更新"先前"当前目录中的权限.在旁注:deploy:symlink很快将更改为deploy:create_symlink,如果在将capistrano升级到2.10或更高版本后中断,请记住这一点.
归档时间: |
|
查看次数: |
3344 次 |
最近记录: |