No Apache 2.2, a diretiva era allow from all
, mas no Apache 2.4, isso se tornou require all granted
. Pesquise require all granted
na documentação.
Li sobre uma dúzia de respostas diferentes para isso, mas nenhuma dessas respostas parece ajudar. Aqui está a questão em poucas palavras:
@bos-lpqum:/var/www$ curl http://localhost/html/index.html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /html/index.html
on this server.</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at localhost Port 80</address>
</body></html>
Quando tento acessar de outra máquina (depois de abrir as portas certas), recebo um tempo limite.
Eu corri sudo chown -R www-data:www-data /var/www
mas ainda obtive o mesmo 403. Eu posso fornecer qualquer arquivo conf que você gostaria de ver.
Eu copiei minha configuração habilitada para sites de outra máquina executando o Apache 2.2.22. Localmente, estou executando o 2.4.7.
update: as permissões parecem precisas para mim:
@bos-lpqum:/var$ ls -lt
total 64
drwxr-xr-x 4 root root 4096 May 7 23:12 centrifydc
drwxrwxrwt 2 root root 4096 May 7 22:48 tmp
drwxrwxr-x 21 root syslog 4096 May 7 08:00 log
drwxr-xr-x 2 root root 4096 May 6 07:59 backups
drwxrwsrwt 2 root whoopsie 4096 May 6 07:35 crash
drwxrwsrwt 2 root whoopsie 4096 May 5 13:09 metrics
drwxr-xr-x 10 root root 4096 May 5 12:53 spool
drwxr-xr-x 20 root root 4096 May 5 12:50 cache
drwxr-xr-x 79 root root 4096 May 5 12:50 lib
drwxr-xr-x 3 www-data www-data 4096 May 5 12:40 www
drwxr-xr-x 3 root root 4096 May 5 12:12 dell
lrwxrwxrwx 1 root root 4 May 4 15:41 run -> /run
drwxr-xr-x 4 root root 4096 Mar 18 11:19 centrify
drwxr-xr-x 2 root root 4096 Mar 18 08:19 games
lrwxrwxrwx 1 root root 9 Mar 18 08:03 lock -> /run/lock
drwxrwsr-x 2 root mail 4096 Mar 18 08:03 mail
drwxr-xr-x 2 root root 4096 Mar 18 08:03 opt
drwxrwsr-x 2 root 50 4096 Apr 19 2012 local
tentou usar o curl com https (em vez de http):
$ curl https://localhost -k
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at
[email protected] to inform them of the time this error occurred,
and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at localhost Port 443</address>
</body></html>
'allow from all' não está em lugar algum para ser encontrado:
$ egrep -r "allow.*from" /etc/apache2/*
/etc/apache2/mods-available/info.conf: # Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
/etc/apache2/mods-available/status.conf: # Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
configuração original:
nova configuração:
000-default.config:
No Apache 2.2, a diretiva era allow from all
, mas no Apache 2.4, isso se tornou require all granted
. Pesquise require all granted
na documentação.
Não vejo nenhum <Directory>
blocos na sua configuração. Embora o padrão do Apache seja permitir o acesso a qualquer coisa, é muito provável que sua distribuição do Linux forneça um acesso seguro à configuração padrão não permitindo , a menos que seja especificamente permitido.
Um host virtual mínimo do Apache (2.4) seria parecido com este:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
<Directory "/var/www/example.com">
Require all granted
</Directory>
</VirtualHost>