403 proibido de apache2

2

Eu sei que esta pergunta é feita muito, mas nenhuma das respostas resolveu o meu problema. Eu tenho a mesma configuração no meu computador de trabalho, mas não está funcionando em casa!

Primeiro eu peguei do meu repositório git em ~ / proto-spa. Então eu instalei o apache2. Desativei o site padrão e copiei o /etc/apache2/sites-available/default verbatim e o despejei em /etc/apache2/sites-available/proto-spa . Eu mudei para apontar para /var/www/proto-spa . Alterei os diretórios para var/www e criei um link simbólico para minha cópia local com ln -s ~/proto-spa . Então eu reiniciei o apache2.

Eu continuo recebendo um 403. Meu log do apache diz:

[Thu Apr 26 08:53:02 2012] [error] [client 127.0.0.1] Symbolic link not allowed or link target not accessible: /var/www/proto-spa

Eu segui o conselho em várias postagens, incluindo chmod -R 755 ~/proto-spa , etc, mas nada funciona.

Ok, esta é a parte em que você pede para ver minha configuração.

<VirtualHost *:80>
  ServerAdmin webmaster@localhost

  DocumentRoot /var/www/proto-spa
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  <Directory /var/www/proto-spa/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
  </Directory>

  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/error.log

  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn

  CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

E aqui está a parte em que você pede para ver as permissões:

sam@sam-central:~$ ls -l /var/www/proto-spa
lrwxrwxrwx 1 root root 20 2012-04-26 08:34 /var/www/proto-spa -> /home/sam/proto-spa/
sam@sam-central:~$ ls -l ~/proto-spa/
total 44
drwxr-xr-x 3 sam sam 4096 2012-04-26 08:32 css
-rwxr-xr-x 1 sam sam  838 2012-04-26 08:32 folders.html
-rwxr-xr-x 1 sam sam  139 2012-04-26 08:32 index.html
drwxr-xr-x 2 sam sam 4096 2012-04-26 08:32 js
-rwxr-xr-x 1 sam sam  608 2012-04-26 08:32 styles.css

Deixe-me saber se alguma outra informação seria útil e agradeço antecipadamente pela sua ajuda!

    
por Samo 26.04.2012 / 16:25

1 resposta

3

As permissões do destino do symlink são boas de se ter, mas elas não são o quadro completo.

O usuário do Apache precisa de direitos transversais no diretório - o qual estou disposto a apostar que não tem.

Verifique as permissões nos diretórios /home/sam e /home/sam/proto-spa - o x bit precisa estar presente para o traversal.

Além disso, em qual sistema operacional você está? O SELinux ou o AppArmor podem estar mordendo você.

E há algum motivo para você realmente precisar usar esse link simbólico no diretório inicial? Você não deveria armazenar conteúdo da web lá.

    
por 26.04.2012 / 17:46