Como habilito acesso completo ao www para apache / PHP, git e myself no linux?

1

A pasta / var / www é de propriedade do root root (usuário, grupo). O que significa que o www-data (grupo apache / php) não tem acesso. Isso estava causando erros de gravação porque o PHP não tinha permissão para criar arquivos.

Eu resolvi pelo CHMOD 0777 toda a pasta / var / www, já que é apenas uma máquina de desenvolvimento privada. No entanto, isso ainda causa problemas porque o CHMOD só funciona nos arquivos que existem quando é executado - não nos arquivos criados depois. Então, se eu criasse um novo arquivo, o PHP não seria capaz de rwx-lo.

E agora eu estou usando o git para trazer mais arquivos e estou tendo dificuldades tentando obter o apache / php, git e meu próprio usuário para que todos reproduzam arquivos bons uns com os outros .

Como habilito acesso total para todos os três?

    
por Xeoncross 21.02.2010 / 20:19

3 respostas

1

Crie um www ou um grupo denominado semelhante e adicione todos os usuários que você deseja gravar em / var / www a esse grupo. Então chown -R www-data: www o diretório completo / var / www. Isso deve permitir o acesso de que você precisa.

Além disso, limpe os privilégios 0777 e redefina-os para o normal.

Espero que funcione: -)

    
por 21.02.2010 / 20:49
3

chmod 777 é um mau hábito, mesmo que seja uma máquina privada ... aprender a fazer as coisas direito em um ambiente seguro significa que você sabe como fazê-las quando precisa fazê-lo em um ambiente inseguro. E você não será tentado a lançar um aplicativo de produção com instruções de instalação que digam "chmod -R 777 / var / www / myapp".

A resposta de Burton é o que eu faço. Minhas contas de desenvolvedor estão no grupo www-data e www-data é o grupo definido em todos os arquivos.

Veja o 'man 2 chmod' e leia o que o grupo pegajoso faz. Ele é muito útil quando o grupo principal não é o grupo que você deseja atribuir a novos arquivos que você cria lá. Ele permitirá que os arquivos criados por você sejam definidos automaticamente no grupo www-data nos diretórios onde você os definiu.

Se o seu servidor web não estiver criando novos arquivos com permissões amplas o suficiente (está criando 0755 quando você quer 0775), olhe para a configuração do seusk.

Para o Perl CGI, geralmente uso o suexec para que o CGI seja executado como um usuário específico, em vez de como www-data. Como o jdoss aponta, você precisará de um módulo específico do PHP para isso. Há também um Apache2 mpm (prefork) que permitirá que cada vhost seja executado como um usuário específico, mesmo para leituras regulares. Ainda não testei esse, mas se funcionar bem, ajudaria muito com esse tipo de problema de segurança.

    
por 22.02.2010 / 00:17
0

O que você pode fazer é configurar um vhost do Apache e criá-lo em um diretório dentro do diretório pessoal do meu usuário (/ home / username / public_html). Isso permite que o usuário e o Git manipulem arquivos sem precisar se preocupar muito com permissões / propriedade. De lá você pode ser preguiçoso e mudar o usuário do Apache / PHP para rodar como seu usuário (acho que isso funcionará) ou você pode olhar para configurar o SuPHP ( link ) que executará seus scripts PHP com as permissões de seus proprietários.

    
por 21.02.2010 / 21:04