Apache 无访问权限的问题

使用Apache做为web服务器, 常常会遇到无权限的问题, 服务器显示:html

Forbidden
You don't have permission to access / on this server.

形成这种问题的缘由不少,最多见的是在Unix/Linux/MacOS系统中, 该目录在 文件系统 中没有权限, 可使用命令 chmod -R 777 目录名 为该目录赋权限web

其次多是Apache的配置禁止了访问权限, 须要配置以下ubuntu

<Directory "/www">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all        
        Require all granted   
</Directory>
  • Options是对该目录的一些选项, Indexes表示在没有index.html等文件的时候显示文件列表
  • AllowOverride All 表示容许使用.htaccess文件重写URL
  • Order allow,denyAllow from all是对ip的访问配置
  • Require all granted 意思是容许全部的请求

使用某些第三方软件来安装的Apache, 好比在ubuntu下用apt-get命令, 默认配置文件中会有这么一段配置:浏览器

<Directory />
        Options FollowSymLinks
        AllowOverride ALL
        Require all denied
</Directory>

出于安全方便的考虑, 将根目录/(也包含它的子目录)所有使用Require all denied设置为禁止访问,将此行注释掉便可访问, 但不建议这么作, 最好是仅对须要访问的目录使用Require all granted来单独赋权安全

其余还有一些, 好比目录下存在一个.htaccess文件, 内容为Deny from all, 或者目录下存在一个静态文件index.html,内容为服务器

<html>
<head>
    <title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

也可使浏览器显示一个无权限的状态ide

这两种方法一般是在没法修改服务器配置和Apache配置的状况下, 须要禁止一些目录的访问权限的时候使用ui