插件窝 干货文章 怎么在Nginx中禁止PHP执行

怎么在Nginx中禁止PHP执行

PHP 方法 Nginx 配置 757    来源:    2025-04-21

在Nginx中禁止PHP执行的方法

要在Nginx中禁止PHP执行,你可以采用以下几种方法,根据你的具体需求选择最适合的方案:

方法1:通过location配置禁止

location ~ \.php$ {
    deny all;
    return 403;
}

这个配置会匹配所有以.php结尾的请求,并返回403禁止访问状态。

方法2:移除或禁用PHP处理器

# 移除或注释掉类似这样的配置
# location ~ \.php$ {
#     fastcgi_pass   127.0.0.1:9000;
#     fastcgi_index  index.php;
#     include       fastcgi_params;
# }

方法3:针对特定目录禁用PHP

location /uploads/ {
    location ~ \.php$ {
        deny all;
        return 403;
    }
}

这会在/uploads/目录下禁止PHP执行。

方法4:修改文件权限

虽然不是Nginx配置,但也可以配合使用:

chmod -x /path/to/your/php/files/*.php

注意事项

  1. 修改配置后,记得重新加载Nginx配置:

    sudo nginx -t && sudo nginx -s reload
    
  2. 如果你只是想防止上传的PHP文件被执行,建议结合方法3(限制特定目录)和方法4(文件权限控制)。

  3. 对于生产环境,建议使用白名单方式只允许必要的PHP文件执行,而不是完全禁止。

  4. 这些配置不会影响已经通过其他方式(如include或require)加载的PHP文件,只是防止直接通过URL访问PHP文件。