出现403 Forbidden报错,一般两种可能性
可能性一、DocumentRoot选项,忘记配置新目录的访问权限
默认安装成功参数设置:
DocumentRoot /usr/local/www/data <directory "/usr/local/www/data"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </directory>
1.1 问题一、重新指定web存放目录,忘记修改Directory后面的路径
例如 DocumentRoot /usr/local/www/data,忘记指定Directory项的路径,造成访问所有目录都出现403,必须同时指定directory "/usr/local/www/data"才行。
1.2 问题二
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>
其中Deny from all已经拒绝了所有的请求链接。应该修改成allow from all
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow allow from all </Directory>
可能性二、
配置了VirtualHost,并且有某个VirtualHost的DocumentRoot不在全局的DocumentRoot目录下。
解决:此时必须在全局中单独增加对该项目的Directory项设置,否则所有访问该VirtualHost下的请求都会403
问题原因:主要是因为Apache2对权限和安全的更高要求,对分布在不通磁盘上的目录文件进行严格管理。
通常尝试办法:
第一:看看是不是Directory配置错了,好像一般不会是这个原因 第二:看看User Group指定的用户有没有权限访问那个目录,否则用chown修改目录的所有者 第三:看看是不是seLinux搞得鬼,一般没事把selinux停了再重启linux,selinux的配置文件在/etc/selinux/config,改成disable 第四:我把所有的都做了发现还是不行,那么可能是apache是用root安装的,把apache卸了用一个非root用户重新安装。
转载于:https://blog.51cto.com/jschu/1882953