apache遇到的权限以及其他一些问题

摘要 you don't have permission to access / on this server Apache2.4 

Apache 从2.2升级到 Apache2.4.x 后配置文件 httpd.conf 的设置方法有了大变化,以前是将 deny from all 全部改成 Allow from all 实现外网访问,现在是将 Require all denied 以及 Require local 都该为 Require all granted 就可以了。

.htaccess 如果不起作用将 LoadModule rewrite_module modules/mod_rewrite.so 前面的注释(#)去掉就可以了。

下面看一下 Apache2.4 的变化:(官方英文说明)

所有的请求都被拒绝

2.2上的配置

Order deny,allow
Deny from all

2.4上的配置

Require all denied

所有请求都是允许的

2.2上的配置

Order allow,deny
Allow from all

2.4上的配置

Require all granted

在域中的所有主机都可以访问example,所有其他外网主机的访问被拒绝

2.2上的配置

Order Deny,Allow
Deny from all
Allow from example.org

2.4上的配置

Require host example.org

要想外网访问将 Require local 该为 Require all granted 。

?

1 2 3 4 5 6 经常会用到的: Require all denied Require all granted Require host xxx.comRequire ip 192.168.1 192.168.2 Require local

举例说明

仅允许IP:192.168.0.1 访问

Require all granted
Require ip 192.168.0.1

仅禁止IP:192.168.0.1访问

Require all granted
Require not ip 192.168.0.1

允许所有访问

Require all granted

拒绝所有访问

Require all denied

默认是 Require local 仅允许本地访问。

还有好多变化,可以去官方说明详细看一下,不过只有英文版的。软件变化无常,建议大家升级前详细阅读官方更新文档,以免来个措手不及。

 

在apache 2.4里,访问权限配置与2.2不同,如果设置不对,则会报403错误,日志中会报 AH01630: client denied by server configuration。

 
[Sun Aug 27 19:01:37.591240 2017] [authz_core:error] [pid 16] [client 172.17.0.1:55766] AH01630: client denied by server configuration: /var/www/html/doc/
172.17.0.1 - - [27/Aug/2017:19:01:37 +0800] "GET /doc/ HTTP/1.1" 403 506 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0"
 
1、如果目录下有.htaccess文件,并且有如下内容,则此目录外部不能访问。
## no access to this folder
 
# Apache 2.4
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
 
# Apache 2.2
<IfModule !mod_authz_core.c>
Order Allow,Deny
Deny from all
</IfModule>
 
可将Require all denied修改为Require all granted允许外部访问,或修改为Require host localhost只允许本机访问,或修改为Require ip x.x.x.x 允许指定的IP访问。
如将mantisbt的doc可在本地访问,可修改doc目录下的.htaccess文件。
1)如果是本机安装,可将Require all denied修改为Require ip 127.0.0.1
2)如果是安装在docker下,可将Require all denied修改为Require ip 172.17.0.1
具体看日志中报错的client ip 地址。
 
2、如果放开指定目录的访问权限,也可在virtualhost的directory配置中明确设定Require all granted。
<Directory /var/www/html>
Options -Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
 
 
 
以上都是apache权限问题
 
posted @ 2018-05-22 16:40  猎手结缘  阅读(368)  评论(0编辑  收藏  举报