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

Django Apache mod_wsgi部署报内部服务器错误及后台样式异常

Django Apache部署故障排查指南

部署完成初期运行正常,后续出现admin后台无CSS样式、指定URL访问返回500错误,日志抛出RuntimeError: populate() isn't reentrant的问题,按以下步骤排查修复,无需修改默认生成的wsgi.py文件。

一、500错误(对应日志populate报错)修复

populate() isn't reentrant是Django的误导性报错,本质是mod_wsgi加载Django进程时前置环节出错,重试加载时触发的异常,和wsgi.py文件本身是否被修改无直接关系,按优先级排查:

  • 目录权限问题(树莓派部署最高发)
    Apache运行用户默认为www-data,需要对项目全目录、虚拟环境目录有读取、执行权限,依次执行命令修正:
    # 给/home/pi目录加其他用户可执行权限,否则Apache无法进入目录树
    sudo chmod o+x /home/pi
    # 把项目目录权限递归分配给www-data
    sudo chown -R www-data:www-data /home/pi/myproject/
    sudo chmod -R 755 /home/pi/myproject/
    # 如果用SQLite数据库,单独给库文件加写权限
    sudo chown www-data:www-data /home/pi/myproject/db.sqlite3
    sudo chmod 664 /home/pi/myproject/db.sqlite3
    
  • mod_wsgi与Python版本不匹配
    日志显示虚拟环境使用Python3.7,若系统安装的mod_wsgi是编译给其他Python版本的,加载时会隐式报错触发该异常。执行dpkg -l | grep libapache2-mod-wsgi检查版本,不匹配则卸载现有版本,安装对应Python3.7的mod_wsgi包,或在虚拟环境内通过pip安装mod_wsgi后编译加载到Apache。
  • Django本地配置校验
    切到项目根目录激活虚拟环境,执行python manage.py check,把命令输出的所有配置错误(缺依赖、INSTALLED_APPS配置错误、数据库连接失败等)全部修复。
  • 全量重启Apache
    修复配置后不要用reload,执行sudo systemctl restart apache2彻底杀掉残留的异常wsgi进程,旧进程卡异常状态时reload不会重置加载状态。

二、Admin后台CSS样式丢失修复

该问题是Apache未配置静态资源映射导致,和500错误相互独立:

  • 先修改项目settings.py配置,保留STATIC_URL = '/static/',新增静态资源收集路径配置:
    STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
    
  • 激活虚拟环境,在项目根目录执行python manage.py collectstatic,该命令会把admin自带的所有CSS、JS等静态文件统一收集到上面配置的static目录下。
  • 修改Apache站点配置文件(默认路径为/etc/apache2/sites-available/000-default.conf),在WSGI配置段新增静态资源别名映射:
    Alias /static/ /home/pi/myproject/myprojectenv/myproject/static/
    <Directory /home/pi/myproject/myprojectenv/myproject/static/>
        Require all granted
    </Directory>
    
  • 再次重启Apache,直接访问http://你的服务IP/static/admin/css/base.css能正常返回CSS内容时,admin样式即可正常加载。

排查提示:如果修复后仍有异常,把Apache日志的错误级别调到debug,能看到populate报错之前真正触发加载失败的根因,不要只盯着populate这一条报错排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:18:35