Apache 2.4.9 no Debian 7.8 - opções .htaccess não permitidas

2

Eu sou parte da equipe que administra um servidor da Web Apache 2.4.9 em execução no Debian 7.8. Estamos com um problema em um dos nossos usuários:

www.example.com/~user

Quando tentamos acessar esse URL, uma página é carregada com o seguinte conteúdo:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log. Apache/2.2.22 (Debian) Server at www.cpdee.ufmg.br Port 80

E em /var/log/apache2/error.log eu acho isso:

[Fri Apr 03 11:36:36 2015] [alert] [client 179.214.195.80] /home/web/user/.htaccess: Options not allowed here

Se eu procurar o conteúdo do arquivo /home/web/user/.htacces, há apenas essa linha de configuração:

Options -Indexes

Após uma pesquisa rápida, pareceu-me que esse problema tem a ver com a configuração do host virtual do Apache. Especificamente, este tutorial diz que esse problema pode ser corrigido adicionando “Opções ”Na lista“ AllowOverride ”do / etc / apache2 / sites-enabled / 000-default, assim:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride FileInfo Options
    Order allow,deny
    allow from all
</Directory>

Este arquivo é apenas um link para o arquivo /etc/apache2/sites-available/default e, no meu caso, este arquivo parece um pouco confuso:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride Options
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride Options
                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
</VirtualHost>

Como sugerido, adicionei Options à lista AllowOverried (para cada tag <Directory> ... </Directory> "que encontrei lá). Então eu ativei as mudanças e recarreguei o Apache com este conjunto de comandos:

a2ensite default
/etc/init.d/apache2 reload

Mesmo com essas mudanças, continuei tendo o mesmo problema e realmente não sei o que está errado. Alguém poderia me ajudar com isso?

    
por Álvaro Lemos 05.04.2015 / 17:20

1 resposta

2

Verifique se configurações mais específicas em userdir.conf substituem as configurações especificadas em <Directory /> . Em /etc/apache2/mods-enabled/userdir.conf é especificado Directory diretiva para userdir, o padrão é:

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Order deny,allow
                        Deny from all
                </LimitExcept>
        </Directory>
</IfModule>

Portanto, você deve adicionar Options à diretiva AllowOverride aqui.

(provavelmente seu diretório é <Directory /home/web/*/> ).

    
por 05.04.2015 / 18:46