[已解决] apache 虚拟目录403缘由

主要有如下几个缘由:linux

  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

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

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

如这样配置虚拟目录:ide

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找到该配置:ui

<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系列发行版,该设定比较烦人,不想配置的直接关掉:code

查看SELinux状态:ci

一、/usr/sbin/sestatus -v ##若是SELinux status参数为enabled即为开启状态get

SELinux status: enabledit

二、getenforce ##也能够用这个命令检查io

关闭SELinux:

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

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

二、修改配置文件须要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改成SELINUX=disabled

重启机器便可

相关文章
相关标签/搜索