O Apache DocumentRoot não muda

0

Estou tentando configurar um servidor Apache 2 em minha máquina Arch Linux. Tudo funciona muito bem até agora, incluindo https e php, mas agora quero alterar o DocumentRoot do padrão /srv/http para /var/www/foo . Alterei DocumentRoot /srv/http e <Directory "/srv/http"> para DocumentRoot /var/www/foo e <Directory "/var/www/foo"> respectivamente e recarreguei a configuração usando systemctl restart httpd . Agora estou recebendo erros 403 ao tentar acessar https://localhost ou qualquer coisa dentro.

Outras investigações mostram que alterar a declaração <Directory ...> tem um efeito, mas alterar o DocumentRoot não. Quando eu defino Require all granted em <Directory /> para eliminar esses erros 403, acontece que o Apache ainda está tentando servir documentos de /srv/http . Por exemplo, eu coloquei um arquivo test.php contendo <?php echo exec('pwd'); ?> em /srv/http/ e /var/www/foo/ e acessando https://localhost/test.php outputs /srv/http em meu navegador. Tentar acessar documentos localizados em /var/www/foo , mas não em /srv/http , resultará em erros 404.

Por que o Apache ainda está usando /srv/http ? Eu mudei absolutamente todas as ocorrências de /srv/http para /var/www/foo em /etc/httpd/conf/httpd.conf e reiniciei o Apache várias vezes, mas a raiz do meu documento simplesmente não muda. De acordo com o artigo do Apache Arch Wiki, eu fiz tudo que é necessário.

Eu poderia, claro, apenas ligar simbolicamente /srv/http ao local desejado, mas isso não parece ser o caminho correto.

Aqui estão as partes do meu httpd.config que eu acho que podem ser relevantes:

<Directory />
    AllowOverride none
    Require all granted     # Will of course change to denied again once everything works
</Directory>

DocumentRoot "/var/www/foo"

<Directory "/var/www/foo">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

É claro que /var/www/foo e todos os diretórios pai têm pelo menos 755 de permissões.

    
por Raptilicus 07.04.2017 / 20:47

1 resposta

1

Você tem alguma seção VirtualHost em httpd.conf ? Se você tiver uma seção VirtualHost com /srv/http definida como DocumentRoot , é possível que o Apache esteja usando esse diretório na seção VirtualHost , mesmo que você tenha alterado o valor DocumentRoot fora do VirtualHost seção.

    
por 07.04.2017 / 21:34