Conceder permissão ao apache para escrever em / home / * / www / directories

3

Novato do servidor LAMP aqui:

Eu tenho um servidor web (em um VPS que tenho acesso root completo), no qual estou configurando alguns usuários com sites para.

Eu tenho o apache2 e o php configurado, e eu especifiquei manualmente alguns sites para eles sob o diretório / etc / apache2 / sites-enable (links simbólicos para sites disponíveis, de acordo com o normal).

Na verdade, não uso o diretório / var / www /, optando pelo seguinte tipo de configuração:

/home/user1/www/websiteone.com/
/home/user1/www/subdomain.websiteone.com/
/home/user1/www/differentwebsiteone.com/
/home/user2/www/websitetwo.com/
/home/user3/www/websitethree.com/

etc, etc, etc. Espero que você possa ver para onde estou chegando.

Eu tenho dois problemas:

  1. O Apache não pode gravar nesses diretórios. Existe um simples, claro explicação sobre como posso conseguir isso para todos / home / * / www / diretórios SOMENTE (e recursivamente) para ser gravável por www-data, sem dar ao usuário1 acesso de gravação ao usuário2 e assim por diante? Um simples passo que funciona retroativamente em todos os futuros usuários é o preferido, mas eu não se importe de configurá-lo manualmente, se for impossível.

  2. Em segundo lugar: em alguns casos, eu gostaria que o usuário2 tivesse acesso a os arquivos differentwebsiteone.com (no diretório inicial do user1), mas não lhes dá acesso a qualquer outra coisa (então, algum tipo de symlink aparece como /home/user2/www/differentwebsiteone.com). Posso alcançar isso facilmente? Talvez movendo os arquivos do site para / var / www / e symlinking aos seus respectivos diretórios home? Ou alguma coisa? O conselho é muito apreciado!

Obrigado!

    
por TC Fox 19.07.2011 / 03:24

1 resposta

3

O Apache é executado como um único usuário para todos os sites, então se você deu acesso para escrever para / home / user1 / www, o usuário2 também seria capaz de escrever scripts PHP que podem gravar em / home / user1 / www. Você precisa executar o PHP fora dos métodos normais para separar os usuários.

Há uma boa descrição aqui sobre os méritos dos vários métodos:

link

Eu gosto de fastcgi, mas se você não precisa de performance, o suPHP é provavelmente o que você quer.

Outra novidade interessante não mencionada são os containers LXC, que realmente não eram utilizáveis em 10.04, mas desde então amadureceram um pouco. Isso permite que você crie o que se parece com outro servidor dentro do seu VPS, mas não é virtualizado ... apenas está contido em seu próprio espaço de processo.

    
por SpamapS 21.07.2011 / 03:33