You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django设置DEBUG=False仍提示生产环境调试安全警告咨询

Django生产环境DEBUG警告修复方案

针对修改settings.py中DEBUG = False后仍弹出SECURITY WARNING: don't run with debug turned on in production警告的问题,按以下优先级排查修复:

  • 校验settings.py全量DEBUG配置
    不要只修改文件开头第一次出现的DEBUG赋值,全文搜索/root/cyberpanel/cyberpanel/settings.py中所有DEBUG =相关代码,确认最终生效的配置为DEBUG = False。重点排查文件末尾、环境判断分支(比如if os.getenv("ENV") == "dev"这类逻辑)是否存在二次将DEBUG改为True的代码。

  • 重启应用与Web服务
    Django生产模式不会自动热加载配置,等待文件自动生效没有任何作用。你使用CyberPanel托管的场景按顺序操作:

    1. 进入CyberPanel面板对应站点的Python应用管理页,点击「重启应用」
    2. 确认应用WSGI入口配置为当前项目的cyberpanel.wsgi,没有指向其他目录的旧项目
    3. 若重启应用无效,在VPS终端执行systemctl restart lsws重启LiteSpeed/OpenLiteSpeed服务,清理残留的旧LSAPI进程
  • 校验运行时实际加载的配置
    不要靠肉眼判断改对了文件,直接在项目根目录(存放manage.py的/root/cyberpanel路径)执行命令,读取Django运行时的真实配置:

    python manage.py shell -c "from django.conf import settings; print('运行时DEBUG值:', settings.DEBUG); print('加载的配置模块:', settings.SETTINGS_MODULE)"
    
    • 如果输出DEBUG值为True:说明你修改的配置文件没有被加载,要么路径不对,要么存在更高优先级的配置覆盖
    • 如果输出DEBUG值为False但页面仍弹警告:说明站点反向代理配置错误,请求被转发到了其他运行DEBUG=True模式的Django实例,需要检查CyberPanel中站点的反向代理端口配置,确认指向当前重启后的应用端口
  • 排查高优先级配置覆盖
    如果你项目使用了django-environ、python-decouple这类环境变量读取库,或者CyberPanel的Python应用配置页自定义了环境变量,需要检查是否存在DEBUG=True的环境变量配置——环境变量的配置优先级高于settings.py中的硬编码值,会直接覆盖你在文件里写的DEBUG = False。
    同时检查manage.py、cyberpanel/wsgi.py、cyberpanel/asgi.py三个入口文件中DJANGO_SETTINGS_MODULE的配置,确认没有指向其他路径的测试配置文件。

  • 最终验证
    所有配置修改、服务重启完成后,按Ctrl+Shift+R硬刷新浏览器清理本地缓存,再访问站点确认警告消失。

内容的提问来源于stack exchange,提问作者afrolo16

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 07:33:19