LNMP有一个缺点就是目录权限设置上不如Apache,有时候网站程序存在上传漏洞或类似pathinfo的漏洞从而导致被上传了php木马,而给网站和服务器带来比较大危险。 建议将网站目录的PHP权限去掉,当访问上传目录下的php文件时就会返回403错误。下面详细介绍如何把lnmp环境下去掉指定目录的PHP执行权限。那么在nginx里面同样可以实现这种方法,那就是location的优先匹配首先要编辑nginx的虚拟主机配置,在fastcgi的location语句的前面按下面的内容添加: 1、单个目录去掉PHP执行权限
location ~* ^/attachments/.*.(php|php5)$ {
deny all;
}
2、多个目录去掉PHP执行权限取消多个目录的php执行访问权限和模版目录文件的访问! #取消多个目录的php执行访问权限和模版目录文件的访问!
location ~* ^/(uploadfile|piaoyun/templates|piaoyun)/.*\.(php|php5)${
deny all;
}
注意这段location 一定要放在指定执行php section的前面才可以生效,include enable-php-73.conf(这里对应你的php版本)这一行的前面,加到这一行后面会起不到作用,主要原因是php版本里有对应的配置会覆盖上面的代码。 添加完执行:
/usr/local/nginx/sbin/nginx -t
测试配置文件 执行:
/usr/local/nginx/sbin/nginx -s reload
载入配置文件使其生效