简洁版本:

简洁版本:

简洁版本:

Apache 拒绝访问文件/opt/管理员,但如果提供的文件位于/usr/share/adminer/管理员

较长的版本:

包裹管理员安装此 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>

管理员提供的版本Ubuntu 14.04有点旧了,我决定下载当前版本。

我把管理员.php(更名为索引.php) 文件位于 /opt/adminer,并更改了相关路径在先前的配置文件中相应地进行。

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>

但这不起作用。当我使用浏览器访问管理员网络应用程序,我看到了这个:

禁止

您无权访问此服务器上的 /adminer/。

在日志文件中:

[Thu Dec 10 18:08:15.425548 2015] [authz_core:debug] [pid 31647] mod_authz_core.c(802): [client 10.0.2.2:49992] AH01626: Require all denied 的授权结果:deny

[2015 年 12 月 10 日星期四 18:08:15.425671] [authz_core:debug] [pid 31647] mod_authz_core.c(802):[客户端 10.0.2.2:49992] AH01626:授权结果:被拒绝

[2015 年 12 月 10 日星期四 18:08:15.425691] [authz_core:error] [pid 31647] [客户端 10.0.2.2:49992] AH01630:服务器配置拒绝客户端:/opt/adminer/

但如果我复制索引.php文件来自/opt/管理员/usr/share/adminer/管理员,并相应地更改配置文件,它就可以完美运行。

更多信息:

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

答案1

我发现了问题..

/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>

因此,默认情况下阿帕奇拒绝访问除/usr/共享/var/www

因此我需要编辑 apache2.conf 文件并明确允许访问/选择

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

或者直接添加要求所有已授予在 - 的里面目录我的原始配置文件的一部分:

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>

答案2

在 ubuntu 服务器 16.04.1 LTS 中,您必须添加行(/etc/apache2/apache2‌​.conf):

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

我之前已经添加过这一行:

<Directory />

重新启动 apache2 后一切正常。

在添加此行之前,什么都不起作用。

相关内容