要在Nginx中禁止PHP执行,你可以采用以下几种方法,根据你的具体需求选择最适合的方案:
location ~ \.php$ {
deny all;
return 403;
}
这个配置会匹配所有以.php结尾的请求,并返回403禁止访问状态。
# 移除或注释掉类似这样的配置
# location ~ \.php$ {
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# include fastcgi_params;
# }
location /uploads/ {
location ~ \.php$ {
deny all;
return 403;
}
}
这会在/uploads/目录下禁止PHP执行。
虽然不是Nginx配置,但也可以配合使用:
chmod -x /path/to/your/php/files/*.php
修改配置后,记得重新加载Nginx配置:
sudo nginx -t && sudo nginx -s reload
如果你只是想防止上传的PHP文件被执行,建议结合方法3(限制特定目录)和方法4(文件权限控制)。
对于生产环境,建议使用白名单方式只允许必要的PHP文件执行,而不是完全禁止。
这些配置不会影响已经通过其他方式(如include或require)加载的PHP文件,只是防止直接通过URL访问PHP文件。