Comportamento de permissão estranho do Apache no Ubuntu 14.04

1

Versão resumida:

O Apache nega o acesso ao arquivo em / opt / adminer , mas funciona como esperado se o arquivo exibido estiver em / usr / share / adminer / adminer .

Versão mais longa:

O pacote adminer instala este arquivo de configuração do apache:

#Apache configuration

Alias /adminer /usr/share/adminer/adminer

<Directory /usr/share/adminer/adminer>
        Options FollowSymLinks
        DirectoryIndex index.php

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php

                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_value include_path .
        </IfModule>
</Directory>

Mas a versão adminer fornecida no Ubuntu 14.04 é um pouco antiga, e eu decidi baixar a versão atual.

Eu coloquei o arquivo adminer.php (renomeado para index.php ) em / opt / adminer, e mudei os caminhos relevantes em o arquivo de configuração anterior de acordo.

Alias /adminer /opt/adminer
#Alias /adminer /usr/share/adminer/adminer

<Directory /opt/adminer>
#<Directory /usr/share/adminer/adminer>
        Options FollowSymLinks
        DirectoryIndex index.php

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php

                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_value include_path .
        </IfModule>
</Directory>

Mas isso não funciona. Quando eu uso um navegador para acessar o aplicativo da web adminer , vejo isso:

  

Proibido

     

Você não tem permissão para acessar / adminer / neste servidor.

No arquivo de log:

  

[qui Dez 10 18: 08: 15.425548 2015] [authz_core: debug] [pid 31647]   mod_authz_core.c (802): [cliente 10.0.2.2:49992] AH01626: autorização   resultado de Exigir tudo negado: negado

     

[Qui Dez 10 18: 08: 15.425671 2015] [authz_core: debug] [pid 31647]   mod_authz_core.c (802): [cliente 10.0.2.2:49992] AH01626: autorização   resultado de: negado

     

[Qui Dez 10 18: 08: 15.425691 2015] [authz_core: error] [pid 31647]   [cliente 10.0.2.2:49992] AH01630: cliente negado pelo servidor   configuração: / opt / adminer /

Mas se eu copiar o arquivo index.php de / opt / adminer para / usr / share / adminer / adminer , e alterar o arquivo de configuração de acordo, ele funciona perfeitamente.

Mais informações:

vagrant@vagrant-ubuntu-trusty-64:~$ ll /opt/adminer/
total 416
drwxr-xr-x 2 root root   4096 Dez  7 23:01 ./
drwxr-xr-x 3 root root   4096 Dez  7 22:10 ../
-rw-r--r-- 1 root root 415388 Nov 15 18:50 index.php

vagrant@vagrant-ubuntu-trusty-64:~$ ll /usr/share/adminer/adminer/
total 416
drwxr-xr-x 2 root root   4096 Dez 10 17:29 ./
drwxr-xr-x 3 root root   4096 Dez 10 17:29 ../
-rw-r--r-- 1 root root 415388 Dez 10 17:29 index.php
    
por tessiof 10.12.2015 / 19:22

2 respostas

1

Eu encontrei o problema ..

Em /etc/apache2/apache2.conf :

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

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

Assim, por padrão, o Apache nega acesso a tudo, exceto / usr / share e / var / www .

Por isso, preciso editar o arquivo apache2.conf e também permitir explicitamente o acesso a / opt :

<Directory /opt/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

ou simplesmente adicione Exigir tudo concedido dentro da parte Diretório do meu arquivo de configuração original:

Alias /adminer /opt/adminer
#Alias /adminer /usr/share/adminer/adminer

<Directory /opt/adminer>
#<Directory /usr/share/adminer/adminer>
        Options FollowSymLinks
        DirectoryIndex index.php
        Require all granted     # <----------

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php

                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_value include_path .
        </IfModule>
</Directory>
    
por tessiof 10.12.2015 / 20:22
1

No servidor Ubuntu 16.04.1 LTS você tem que adicionar linha (/ etc / apache2 / apache2‌ .conf):

#put some comment here to know what happend    
Include /etc/adminer/apache.conf

Eu adicionei esta linha antes:

<Directory />

e depois de reiniciar o apache2, tudo está funcionando bem.

Antes desta linha ser adicionada, nada estava funcionando.

    
por maroQ 16.08.2016 / 18:21