Alterou o diretório LAMP WWW para o Dropbox, agora recebendo 403 Forbidden

2

Eu quero usar meu diretório Dropbox / Web como o diretório do servidor para LAMP. Eu chamei /etc/apache2/sites-available/default

DocumentRoot /home/me/Dropbox/Web #changed from /etc/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /home/me/Dropbox/Web/> #changed from /etc/www
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

E agora eu recebo

Forbidden

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

Apache/2.2.22 (Ubuntu) Server at localhost Port 80
    
por ilyo 23.12.2012 / 16:06

2 respostas

4

www-data , o grupo / usuário que o Apache executa não tem permissão para ler em seu diretório pessoal.

Você pode usar permissões regulares para alterar isso como gertvdijk explicado em sua resposta.

Eu consideraria usar acl em vez de permissões regulares, permitindo adicionar permissão ao apache em vez de substituir o grupo no diretório inicial ou tornar o mundo do diretório legível.

Para isso, você precisa instalar o acl:

sudo apt-get install acl

Você pode usar man setfacl para ter mais informações.

Para adicionar permissões ao apache:

sudo setfacl -m d:g:www-data:X,g:www-data:X /home/me
sudo setfacl -m d:g:www-data:X,g:www-data:X /home/me/Dropbox
sudo setfacl -Rm d:g:www-data:rX,g:www-data:rX /home/me/Dropbox/Web

O primeiro e o segundo comando permitirão que o Apache (www-data) altere o diretório apenas pelo caminho (sem permitir outros subdiretórios) em sua casa. Eles provavelmente não são necessários se você estiver usando a configuração padrão, mas se você já alterou as permissões (ou irá mudar no futuro) para desabilitar other users para ler em sua casa, elas serão necessárias.

O terceiro é o comando que permitirá ao Apache ler e alterar diretórios no Dropbox / web e subdiretórios).

Obs: maiúsculas X atuarão apenas em diretórios ao invés de minúsculas x que atuariam tanto em arquivos quanto em diretórios (desta forma o usuário do apache só é capaz de alterar diretórios, não de executar arquivos).

    
por laurent 23.12.2012 / 16:46
4

O Apache provavelmente não consegue ler a partir do seu diretório do Dropbox. No Ubuntu, o Apache é configurado para ser executado como usuário www-data . Certifique-se de definir as permissões no seu sistema de arquivos para permitir que o Apache leia todo o caminho.

Para testar se esse é realmente o seu problema, tente em um terminal

sudo su -l www-data -s /bin/bash

e, em seguida, cd passo a passo na sua pasta do Dropbox:

cd /home
cd me
cd Dropbox
cd Web

Corrija as permissões, por exemplo,

  • chmod o+rx nos diretórios e chmod o+r nos arquivos, ou
  • altere os grupos em arquivos / diretórios chgrp www-data e permita somente o www-data group ler / acessar: chmod g+r para arquivos e chmod g+rx para diretórios.
por gertvdijk 23.12.2012 / 16:14