nginx access denied 的解决方法

使用php-fpm,如果网站返回的内容只有两个单词access denied., 返回到状态码是403。遇到这样的情况通常是nginx+php-fpm的运行环境,出错的原因是使用php-fpm解析了非php后缀的扩展的文件。

“access denied” 解决方法修改一个配置选项就可以解决。

php-fpm 为了安全会进行一些限制。比如仅仅解析 .php 后缀的文件, 如果文件不是php文件,默认不解析。有时候需要一些需求,解析非 php后缀的文件。比如 .txt.css

修改 security.limit_extensions

这个文件通常在 php-fpm的配置文件 php-fpm.conf 内,或者 php-fpm.d 目录下文件。

.
├── pear.conf
├── php-fpm.conf
└── php-fpm.d
    ├── www.conf

这里这个配置在 www.conf

限制php-fpm对一些扩展名的解析。在服务器端可以阻止一些配置错误。 默认仅仅解析php后缀的扩展

; Limits the extensions of the main script FPM will allow to parse. This can
; prevent configuration mistakes on the web server side. You should only limit
; FPM to .php extensions to prevent malicious users to use other extensions to
; execute php code.
; Note: set an empty value to allow all extensions.
; Default Value: .php
;security.limit_extensions = .php .php3 .php4 .php5 .php7
security.limit_extensions = .php .txt

如果需要解析 txt 文件在 配置后加上 .txt 就可以解决。

发表评论

邮箱地址不会被公开。