lnmp取消nginx目录PHP执行权限(此法亦用可多站点的安全设置,尤其dedecms)

今天在处理一dedecms的安全配置的时候,涉及了nginx配置文件的设置,当然apache就比较简单了,下面就nginx简单说下设置步骤:

首先要编辑nginx的虚拟主机配置,在fastcgi的location语句的前面按下面的内容添加:

1、单个目录去掉PHP执行权限

  1. location ~ /attachments/.*\.(php|php5)?$ {
  2. deny all;
  3. }

将attachments目录的PHP执行权限去掉。

2、多个目录去掉PHP执行权限

  1. location ~ /(attachments|upload)/.*\.(php|php5)?$ {
  2. deny all;
  3. }

将attachments、upload这二个目录的PHP执行权限去掉。

附上一个完整的虚拟主机的例子供参考:

  1. server
  2. {
  3. listen 80;
  4. server_name www.xker.com;
  5. index index.html index.htm index.php;
  6. root /home/wwwroot/bbs.vpser.net;include discuz.conf;
  7. location ~ /(attachments|upload)/.*\.(php|php5)?$ {
  8. deny all;
  9. }
  10. location ~ .*\.(php|php5)?$
  11. {
  12. fastcgi_pass unix:/tmp/php-cgi.sock;
  13. fastcgi_index index.php;
  14. include fcgi.conf;
  15. }
  16. access_log off;
  17. }

添加完执行:/usr/local/nginx/sbin/nginx -t测试配置文件,执行:/usr/local/nginx/sbin/nginx -s reload 载入配置文件使其生效。

php技术开发友情提示:注意顺序,一定要放在 “location ~ .*\.(php|php5)?$” 一行上面,不然不会生效。