O que são permissões adequadas para arquivos php localhost? Obtendo erro 403

1

Isso está me deixando louco. Muito louco.

História rápida. Eu criei um link simbólico:

sudo ln -s /home/richardmandx/Dropbox/www /var/

Quando eu vou ao localhost (instalado através do sudo task-sel lâmpada-server)

You don't have permission to access / on this server.

O problema é que eu tenho tentado desde 2 ou 3 horas fazendo isso funcionar e eu mudei as permissões para que eu tenha uma verdadeira bagunça agora.

Coisas que quero realizar:

1) Precisa corrigir as permissões novamente para / home / richardmandx e / home / richardmandx / Dropbox / www

2) Eu não sei se o symlink / var / www herda as permissões, se não, eu acho que elas precisam ser corrigidas.

3) Livre-se do erro 403, configurando tudo o que precisa ser feito.

Eu juro que esta foi uma tarefa fácil no Ubuntu 8-9, mas no Ubuntu 11-12 está ficando difícil para mim conseguir isso.

Se isso ajudar, quando eu executar ls -la em meu / home / richardmandx eu tenho isso (trunked):

drwxr-xr-x  5 root         root          4096 ago 17 20:52 ..
-rw-------  1 richardmandx richardmandx  2344 ago 17 22:37 .bash_history
-rw-r--r--  1 richardmandx richardmandx   220 ago 17 14:59 .bash_logout
drwx------  6 richardmandx richardmandx  4096 ago 17 19:52 .cache
drwxr-xr-x 14 richardmandx richardmandx  4096 ago 17 20:03 .config
drwx------  3 richardmandx richardmandx  4096 ago 17 15:23 .dbus
drwxr-xr-x  2 richardmandx richardmandx  4096 ago 17 20:33 Descargas
-rw-------  1 richardmandx richardmandx    28 ago 17 22:40 .dmrc
drwxr-xr-x  2 richardmandx richardmandx  4096 ago 17 15:23 Documentos
drwx------  3 richardmandx richardmandx  4096 ago 17 23:00 .dropbox
drwx------  4 richardmandx richardmandx  4096 ago 17 22:40 Dropbox
drwxr-xr-x  3 richardmandx richardmandx  4096 ago 17 20:31 .dropbox-dist
drwxr-xr-x  2 richardmandx richardmandx  4096 ago 17 15:23 Desktop

Dentro de / home / richarmandx / Dropbox / www se parece com isso:

drwxr-xr-x  6 www-data     www-data       4096 ago 17 20:56 pyrocms
drwxr-xr-x  5 www-data     www-data       4096 ago 17 20:58 ricvega
drwxr-xr-x  6 www-data     www-data       4096 ago 17 20:58 ser-website
drwxr-xr-x  3 www-data     www-data       4096 ago 17 20:37 slate
drwxr-xr-x  9 www-data     www-data       4096 ago 17 21:13 sofom
drwxr-xr-x  6 www-data     www-data       4096 ago 17 20:59 tzz
drwxr-xr-x 11 www-data     www-data       4096 ago 17 20:58 vanilla

E, finalmente, meu link simbólico / var / www é assim:

drwxr-xr-x  6 www-data     www-data       4096 ago 17 20:56 pyrocms
drwxr-xr-x  5 www-data     www-data       4096 ago 17 20:58 ricvega
drwxr-xr-x  6 www-data     www-data       4096 ago 17 20:58 ser-website
drwxr-xr-x  3 www-data     www-data       4096 ago 17 20:37 slate
drwxr-xr-x  9 www-data     www-data       4096 ago 17 21:13 sofom
drwxr-xr-x  6 www-data     www-data       4096 ago 17 20:59 tzz
drwxr-xr-x 11 www-data     www-data       4096 ago 17 20:58 vanilla

Alguma boa alma pode me ajudar a consertar isso?

Agradeço antecipadamente !!!

    
por Richard-MX 18.08.2012 / 06:10

1 resposta

1

Meu entendimento de como o www-data se encaixa é que nenhum dos arquivos ou diretórios são de propriedade desse usuário. É o usuário que o Apache executa, e o ponto principal é que o usuário www tem privilégios reduzidos e não possui os arquivos ou tem permissões para alterá-los.

O proprietário atual deve ser você ou root, acredito, então www-data terá privilégios de somente leitura, não rwx.

Você criou um link em /var to /home/richardmandx/Dropbox/www ? Eu não entendo porque você faria isso. O que eu faço para o meu servidor de teste pessoal é simplesmente criar o servidor virtual em ~/www , editando /etc/apache2/sites-enabled/000-default e alterar /var/www para /home/me/www , ou adicionar mais servidores virtuais em quaisquer diretórios que eu queira usar.

Edições:

Se este é um servidor doméstico sem acesso externo geral, eu acho que é mais fácil para o desenvolvimento mudar o servidor local de /var/www (de propriedade do root) para o seu diretório home / www, ou algo similar. Você provavelmente poderia mudar o proprietário de /var/www da raiz para si mesmo, dando r - permissões para grupo / outros. Esta é a permissão normal quando o root é proprietário.

Tornar-se o proprietário facilita muito a edição de arquivos, já que você não precisará copiar nem usar o sudo. Outra opção é montar /var/www em um diretório que você possui, mas pode ser necessário fornecer opções extras para as permissões. Isso é provavelmente mais fácil do que parece.

Se você tiver acesso externo, provavelmente seria melhor deixar as coisas como normalmente são configuradas. Eu tenho um servidor padrão limpo em um teste 12.04 VM, configurado usando a instalação padrão, que funciona bem. /var/www é de propriedade do root, com permissões 'drwxr-xr-x for the directory, and -rw-r --- r--' para os arquivos. Não há nenhum dado de www mostrado em qualquer lugar, como deveria ser, se minha compreensão está correta. Você não quer que pessoas de fora tenham muitas permissões, por isso o www-data é um usuário limitado para o Apache que atende a esse requisito. Tem menos autoridade que você.

Se você quiser usar seu diretório inicial, a maneira mais simples e mais limpa é editar /etc/apache2/sites-enabled/000-default e alterar todas as ocorrências (ou pelo menos as mais internas) de /var/www para qualquer diretório escolhido e, em seguida, reiniciar o Apache . Você pode adicionar qualquer número de sites virtuais à parte interna da configuração, semelhante a este, com qualquer nome desejado e um diretório correspondente. Eu crio sites com um nome como "mysite.dev", e em qualquer máquina que acessa, eu faço uma entrada em /etc/hosts com algo como 192.168.1.111 mysite.dev . O Apache pegará esse nome, procurará o diretório do site virtual e o abrirá.

    
por Marty Fried 18.08.2012 / 06:50