Que direitos o / vol / www tem no servidor web ubuntu?

1

Estamos implantando nosso aplicativo rails em um servidor Ubuntu 10.04. Quando cap deploy: setup, há um erro dizendo que:

  * executing "mkdir -p /vol/www/myapp /vol/www/myapp/releases /vol/www/myapp/shared /vol/www/myapp/shared/system /vol/www/myapp/shared/log /vol/www/myapp/sha
red/pids"
    servers: ["11.15.69.45"]
Password:
    [11.15.69.245] executing command
*** [err :: 11.15.69.45] mkdir: cannot create directory '/vol/www/myapp/releases'

a saída de ls -ld / vol / www é:

drwxr-xr-x 3 root root 4096 2011-11-22 04:35 /vol/www

Que tipo de direitos adicionais precisamos atribuir no servidor da Web e que subdiretem esses direitos que precisam ser atribuídos?

    
por user938363 21.11.2011 / 21:55

2 respostas

1

Parece haver alguma confusão sobre o seu problema aqui. A resposta de Andrew aborda o problema, "o servidor da web tem as permissões adequadas para gravar diretamente na implantação?"

No entanto, você está realmente tendo problemas em um estágio anterior: implantando seu código no servidor. Nessa fase, não importa muito se o servidor da Web pode gravar em / vol / www, mas se o usuário que você está se conectando como ao implantar o o código tem permissões para gravar nesse diretório.

A solução de Andrew ainda se aplica basicamente, mas de forma ligeiramente diferente.

Eu recomendaria uma das seguintes abordagens:

  1. Como você já configurou /vol/www para ser grupo-gravável pelo grupo www-data , basta adicionar seu usuário a esse grupo:

    sudo usermod -aG www-data your-username
    
  2. Ou, você pode se tornar o proprietário e ter acesso a esse caminho. Como você já configurou o acesso de grupo ao servidor da Web, a alteração do proprietário do diretório não deve causar problemas na linha.

    sudo chown your-username /vol/www
    

Qualquer uma dessas opções deve fornecer ao usuário o acesso adequado para implantar o código e também preservar o acesso do servidor da web a esse diretório.

    
por 23.11.2011 / 00:47
0

O usuário do servidor web no Ubuntu é www-data (a menos que você esteja executando com o mod_suexec). Então www-data precisa de permissão de escrita em / vol / www. Uma maneira de fazer isso é fazer com que www-data seja o proprietário:

chown www-data /vol/www

Ou você pode usar propriedade e permissões de grupo:

chgrp www-data /vol/www
chmod g+w /vol/www

Uma terceira forma é com as ACLs:

setfacl -m u:www-data:rwx /vol/www
getfacl /vol/www   # to see the ACL grant
    
por 22.11.2011 / 17:11