[已解决] apache 虚拟目录403原因

主要有以下几个原因:

  1. 目录权限 这个看apache错误日志,一般会有提示,如:
1475 [Thu Jun 20 16:39:43.673203 2019] [core:crit] [pid 43885] (13)Permission denied: [client 112.93.21.21:14290] AH00529: /home/hello/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/hello/' is executable

需要给目录加上可读可执行权限,如

chmod o+x /home/hello
chmod o+r /home/hello
  1. Require all denied 设置

如这样配置虚拟目录:

Alias /virtualdirectory/ "D:/user/www/virtual/"
<Directory "D:/user/www/virtual/">
   Options Indexes FollowSymLinks MultiViews ExecCGI
   AllowOverride All
   Order allow,deny
   Allow from all
</Directory>

apache默认配置是比较严格的,不允许未经过验证去访问目录,这个可以在httpd.conf找到该配置:

<Directory>
   AllowOverride none
   Require all denied
</Directory>

解决方法:给虚拟目录增加 require all granted 指令,即上述配置变成:

Alias /virtualdirectory/ "D:/user/www/virtual/"
<Directory "D:/user/www/virtual/">
   Options Indexes FollowSymLinks MultiViews ExecCGI
   AllowOverride All
   Order allow,deny
   Allow from all
   Require all granted
</Directory>
  1. SELinux

主要是 rehat系列发行版,该设定比较烦人,不想配置的直接关掉:

查看SELinux状态:

1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态

SELinux status: enabled

2、getenforce ##也可以用这个命令检查

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0 ##设置SELinux 成为permissive模式

2、修改配置文件需要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

转载于:https://my.oschina.net/falcon10086/blog/3064392

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值