LAMP 403禁止访问自定义文件夹

我知道这是一个常见的问题,主要是对用户www-data的权限问题,但是按照本指南我得到了经典错误:

 403 forbidden You don't have permission to access /web on this server. 

尽管有大量人员面临同样的问题,但我无法在线找到解决方案。 抱歉! 🙂

这是我的000-default.conf文件

  ServerAdmin webmaster@localhost DocumentRoot /home/tom/Dropbox/web  Options FollowSymLinks AllowOverride All   Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/  AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all  ErrorLog /home/tom/Dropbox/web/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog home/tom/Dropbox/web/access.log combined Alias /doc/ "/usr/share/doc/"  Options Indexes MultiViews FollowSymLinks AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128  

当然,我尝试配置本地网站的文件夹位于~/Dropbox/web

最后,这些是当前的权限

 drwxrwxrwx 8 tom tom 4096 mars 26 09:57 Dropbox drwxrwxrwx 3 tom tom 4096 mars 26 11:47 web 

谢谢

升级到apache 2.4.9+后会发生这种情况

基本上只是替换

 Order allow,deny allow from all 

 Require all granted 

应该解决这个问题。

就像是,

  Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/  AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted  

以下是http://httpd.apache.org/docs/2.4/howto/access.html的说明

如果您希望根据访问者的主机地址限制访问您网站的某些部分,则可以使用mod_authz_host轻松完成此操作。

Require提供了各种允许或拒绝访问资源的不同方法。 结合RequireAllRequireAnyRequireNone指令,这些要求可以以任意复杂的方式组合,以强制执行您的访问策略。

mod_access_compat提供的AllowDenyOrder指令已弃用,将在以后的版本中消失。 您应该避免使用它们,并避免过时的教程推荐使用它们。