Como configurar permissões para permitir que o gedit, o apache e um IDE sejam reproduzidos juntos?

4

Estou usando o Ubuntu Desktop 11.04 e instalei minha pilha de lâmpadas usando o servidor da lâmpada. Estou tentando usar o Netbeans como meu IDE.

Atualmente, todos os hosts virtuais estão sendo executados a partir de /var/www/vhostname - mas como eu não configurei nenhum grupo ou permissão, se eu tentar abrir algum arquivo por meio do Netbeans, ele não terá permissão de gravação.

Como posso configurar permissões adequadamente (ou configurar o Apache ou o Netbeans) para que:

  • Arquivos criados por um script php podem ser rw pelo Netbeans
  • Arquivos criados pelo Netbeans podem ser rw pelo Apache

Eu tentei chown all para meu usuário / grupo que deu permissão de gravação ao Netbeans, mas o Apache não tinha permissão de gravação.

Nota: Isto é puramente para uma máquina de desenvolvimento - não usado na produção, e eu sou o único usuário nesta caixa.

UPDATE

Eu costumava usar o método na resposta que marquei como aceito, mas hoje em dia faço algo muito mais simples:

  1. Eu configurei o Apache para ser executado como meu usuário e meu grupo (isso é feito no httpd.conf, apache2.conf ou envvars dependendo da sua distribuição)
  2. faço chown / var / www para meu usuário e grupo

Voila, o Apache tem acesso de leitura / gravação e eu tenho acesso de leitura / gravação enquanto trabalho em projetos.

    
por Nick 07.10.2011 / 18:54

3 respostas

2

O que eu recomendo fazer tem sido principalmente descrito nesta questão do Ask Ask .

Para este caso em particular, eu instalaria o suPHP que, em resumo, permite que você execute scripts PHP como seu usuário no Apache.

Ao fazer o seguinte:

sudo chown -R youruser:youruser /var/www
find /var/www/ -type d -exec chmod 0755 {} \;
find /var/www/ -type f -exec chmod 0644 {} \;

Instale suphp-common e libapache2-mod-suphp de este ppa (O que são os PPAs e como usá-los? )

Desativar mod_php5 e ativar mod_suphp

sudo a2enmod suphp
sudo a2dismod php5

Atualize seus hosts virtuais para incluir essa linha na parte inferior deles:

suPHP_UserGroup youruser youruser

Substituindo youruser pelo usuário usado para editar arquivos no servidor. Reinicie o Apache.

Deste ponto em diante, o Apache irá executar todos os scripts php que são seus usuários, o que significa que eles podem pertencer ao seu usuário / grupo e não há necessidade de usar permissões loucas como 777 . Como tudo é executado como seu usuário, todos os arquivos criados pelos scripts php também serão de propriedade do usuário! Existem muitas outras coisas legais que você pode fazer com o suPHP; no entanto, pelo que parece, isso é tudo que você precisa para começar.

    
por 07.10.2011 / 19:27
0

Você desejará tornar os arquivos rw por outros (não apenas grupo e proprietário). Deve-se notar que pode haver problemas de segurança ao fazer isso, mas eu usei chown das pastas para o usuário / grupo do Apache e use chmod o+rw nas pastas para permitir que o Netbeens leia / grave os arquivos. Eu não testei isso, mas deveria funcionar. Se você preferir máscaras de bits, acredito que chmod 766 nas pastas obterá o mesmo resultado.

    
por 07.10.2011 / 19:11
0

Defina o grupo em /var/www/vhostname para apache recursivamente. Adicione-se ao grupo apache . Definir permissões em var/www/vhostname para 775.

chown -R apache /var/www/vhostname
chmod -R 775 /var/www/vhostname
usermod -a -g apache $USERNAME

Isso garantirá que você (e outros no grupo apache , como o Apache, possam gravar no diretório do servidor, mas ninguém mais possa fazê-lo. Ele também garantirá que um script fugitivo não escreva conteúdo em seu diretório inicial , ou que um script não pode, por exemplo, echo PATH=/path/to/evil/script/directory:$PATH >> ~/.bashrc

    
por 08.10.2011 / 21:29