Os hosts virtuais no Apache exigem que a opção “FollowSymLinks” seja ativada?

2

Em /etc/apache2/apache2.conf , tenho a seguinte configuração para o Apache em relação ao diretório /var/www :

<Directory /var/www/>
    Options -Indexes -Includes -ExecCGI
    AllowOverride All
    Require all granted
</Directory>

Em /etc/apache2/sites-enabled/example.com.conf , foi assim que configurei meu host virtual para example.com :

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example.com/public

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Tudo está funcionando bem até agora.

Mas assim que edito a parte <Directory /var/www/> (veja acima) em

Options -Indexes -Includes -ExecCGI

para

Options -Indexes -FollowSymLinks -Includes -ExecCGI

o site pára de funcionar e responde com um erro 403 .

Por que isso está acontecendo? Em nenhum lugar eu usei quaisquer links simbólicos, pelo menos não conscientemente. Então, o Apache está usando-os internamente ao trabalhar com hosts virtuais?

Não vejo nenhum motivo pelo qual essa opção deva interromper a configuração. O site é realmente armazenado em /var/www/example.com/public , que não é um link simbólico.

    
por caw 02.12.2016 / 04:07

1 resposta

1

Os logs de erro do Apache explicam o motivo desse problema:

  

[reescrever: erro] [pid ...] [cliente ...] AH00670: As opções FollowSymLinks e SymLinksIfOwnerMatch estão desativadas, portanto, a diretiva RewriteRule também é proibida devido à sua capacidade semelhante de contornar restrições de diretório

Usando mod_rewrite com RewriteRule (como é comum), enquanto desativando FollowSymLinks (como mostrado na pergunta) só é possível se SymLinksIfOwnerMatch estiver ativado em troca.

Assim

-FollowSymLinks

deve se tornar

-FollowSymLinks +SymLinksIfOwnerMatch

ou mod_rewrite com RewriteRule não podem mais ser usados.

Obrigado pela dica, @ fkraiem!

    
por caw 02.12.2016 / 08:18