Apache 2.4 - 403 código de status HTTP

2

Estou recebendo uma mensagem de erro 403 com o Apache, no Debian Testing.

Versão do Apache:

# aptitude show apache2 | grep -i version
Version: 2.4.9-1

# ls -la /home/

total 28
drwxr-xr-x  4 root    root     4096 Apr  3 13:19 .
drwxr-xr-x 23 root    root     4096 Apr  4 07:28 ..
drwx------  2 root    root    16384 Apr  3 13:13 lost+found
drwx--x--x 36 username username  4096 Apr  7 13:30 username

# ls -la /home/username/Development/PHP/foo.dev.com/

total 16
drwx--x--x 4 username username 4096 Apr  3 14:35 .
drwx--x--x 6 username username 4096 Apr  3 14:36 ..
drwx--x--x 2 username username 4096 Apr  3 14:35 logs
drwx--x--x 8 username username 4096 Apr  3 14:35 public_html

# cat /etc/apache2/sites-enabled/dev.com.conf
UseCanonicalName Off

<VirtualHost *>
    VirtualDocumentRoot "/home/username/Development/PHP/%0/public_html/"
    <Directory "/home/username/Development/PHP/%0/public_html/">
        Require all granted
    </Directory>
</VirtualHost>

# cat /var/log/apache2/error.log
[Mon Apr 07 14:08:15.069251 2014] [authz_core:error] [pid 8649] [client 127.0.0.1:48578] AH01630: client denied by server configuration: /home/username/Development/PHP/foo.dev.com/public_html/

Firefox, configuração "Sem proxy para":      localhost, 127.0.0.1, *.dev.com

# cat /etc/hosts:
hosts        hosts.allow  hosts.deny
root@username:/home# cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   username.mymachine.local    username

# Custom
127.0.0.1   teste.dev.com

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

UPDATE 1:

O SELinux não parece estar instalado:

$ aptitude search ~i | grep selinux
i   libselinux1                     - SELinux runtime shared libraries

UPDATE 2:

$ ls -la /home/
total 28
drwxr-xr-x  4 root    root     4096 Apr  3 13:19 .
drwxr-xr-x 23 root    root     4096 Apr  4 07:28 ..
drwx------  2 root    root    16384 Apr  3 13:13 lost+found
drwx--xr-x 38 username username  4096 Apr  9 08:26 username
    
por Thom Thom Thom 08.04.2014 / 12:25

3 respostas

1

client denied by server configuration: /home/username/Development/PHP/foo.dev.com/public_html/

Isso me faz pensar em um problema semelhante que tive:

Verifique se www-data user tem a permissão x bit definida para cada pasta no caminho para /home/username/Development/PHP/foo.dev.com/public_html

Ou tornando www-data o proprietário das pastas: chown www-data

Ou conceda o x bit a others : chmod o+x

EDITAR:

Finalmente, consegui reproduzir. Parece que %0 não é suportado na diretiva <Directory> . Eu corrigi isso adicionando um * :

UseCanonicalName Off
<VirtualHost *>
    VirtualDocumentRoot "/home/username/Development/PHP/%0/public_html/"
    <Directory "/home/username/Development/PHP/*/public_html/">
        Require all granted
    </Directory>
</VirtualHost>
    
por 08.04.2014 / 14:26
0

Não tenho certeza se <Directory> -directive aceita %0 como parte do nome do caminho, na documentação apenas os regexps são mencionados: link

Considerando que ´% 0´ faz parte do módulo vhost_alias: link

Você pode tentar mudar

<Directory "/home/username/Development/PHP/%0/public_html/">

para:

<Directory "/home/username/Development/PHP/">

e veja se este é o caso. Você provavelmente também pode tentar com regexp /home/username/Development/PHP/*/public_html/

    
por 08.04.2014 / 18:11
0

client denied by server configuration: /home/username/Development/PHP/foo.dev.com/public_html/

Deveria ser óbvio que ....

ls -la /home/username/Development/PHP/foo.dev.com/

    drwx - x - x 8 username username 4096 Abr 3 14:35 public_html

... o uache do apache precisa da permissão READ no diretório (e no arquivo). Para corrigir:

chmod -R o+r /home/username/Development/PHP/foo.dev.com/
    
por 08.04.2014 / 18:49