Apache2静态文件报“Access denied”小记

apache2提示“Access denied”,状态码404,第一反应是apache2的用户www-data对文件没有权限,但是奇怪的是,对于接口访问(php)确是OK的,所有的资源文件都访问不了,查了以下,是有读权限的,查了站点下的error.log:

[Thu Apr 09 14:33:55.072565 2020] [proxy_fcgi:error] [pid 23:tid 140714637768448] [client 172.18.0.1:49334] AH01071: Got error 'Access to the script '/var/www/xxx/public/logo.png' has been denied (see security.limit_extensions)\n'

注意关键点:proxy_fcgi:error`,我想,访问资源文件跟fcgi有什么关系呢?那我是不是有可能把所有的请求都转发给php了呢?

继续检查apache配置文件,终于发现:

    <FilesMatch .*$>
        SetHandler "proxy:fcgi://php72:9000"
    </FilesMatch>

有问题!

果然所有的请求都会转发到php去了!遂按照示例配置改成如下:

    <FilesMatch \.(cgi|shtml|phtml|php)$>
        SetHandler "proxy:fcgi://php72:9000"
    </FilesMatch>

重启 apache:docker-compose restart apache2,问题解决!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注