Apache 403错误

升级到Apache2.4后,突然提示这个,按网上的教程把/etc/httpd/conf/httpd.conf以及虚拟机的配置文件都检查改了一轮,在所有的配置文件中与该虚拟主机相关的:‘

order allow,deny
allow from all

统一修改为:

Require all granted

结果发现仍然提示404,其中发现html页面一切正常,但凡php提示403,最终找到错误的原因是在虚拟主机的各个目录下都生成了.htaccess文件,而其中的内容是如下的:

<FilesMatch ".(py|exe|phtml|php|PhP|php5|suspected)$">
Order Allow,Deny
Deny from all
</FilesMatch>

修改虚拟主机根目录下的.htaccess文件,站点打开了,但需要注意的是在子目录,如wp-content/wp-admin下仍有.htaccess文件,并且内容大体一致,根据需要(是否需要访问上述后缀的文件)来判断是否需要修改。

可能以前写过:
1. 在各个配置文件中directories的配置是各自配置的,更底层的目录肯定有更高的优先级;也就是说配置/或/var目录是禁止访问的,同时配置/var/www目录允许访问,则此时是允许的;

Continue Reading

Apache虚拟目录(Virtual Directory)403错误

今天想在网站上加个虚拟目录,照教程添加了:alias及对应的Directory描述,左右测试总是提示403:Access Forbidden。毫无疑问是权限问题……

1、确认了Directory没有错:)虚拟目录无论是添加到全局还是虚拟主机当中都提示权限问题。

2、确认了目标目录有权限:)

仔细检查后终于在一个地方找到了说法:

http://stackoverflow.com/questions/6807317/fixing-403-forbidden-on-alias-directory-with-apache

这位大哥的回复:

http://stackoverflow.com/users/304690/gliptak

Check permission on /Users/user/Documents/, /Users/user/ (higher level permissions are enforced first …)

/bin/su into the user running Apache (like www, www-data) and cat a file in the /Users/user/Documents/example directory. That might point you to permission problems with your setup.

简单点说就是不能只设置目标目录的权限,这个目标的上级目录都要有相应的权限。例如设置一个虚拟目录

alias DirectoryC /root/a/b/c

那么仅仅设置/root/a/b/c这个目录的权限是不能解决问题的,必须依次检查/root,/root/a,/root/a/b这些目录均是否有访问的权限,否则将会有问题。

通过设置相应上级目录的权限问题解决了。

另补充一点:即使是只显示文件列表,没有任何php文件的目录,也需要有r-x权限才能正常访问,光有r不够。

Continue Reading