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

切换PostgreSQL后Apache报错及WSGI应用缺失问题求助

问题排查与解决方案

一、psycopg2模块找不到的问题

manage.py runserver正常但Apache报错找不到模块,核心原因是Apache的mod_wsgi未使用项目对应的Python环境:

  • 检查mod_wsgi与Python版本匹配性:执行mod_wsgi-express module-config,对比输出的Python路径和项目所用Python路径,若不一致需重新编译mod_wsgi适配你的Python版本,或在Apache配置中指定正确的Python路径。
  • 绑定项目虚拟环境到Apache:在站点配置文件(如000-default.conf)中添加:
    WSGIDaemonProcess your_project python-home=/绝对路径/到你的虚拟环境
    WSGIProcessGroup your_project
    
    替换your_project和虚拟环境路径,确保路径为绝对路径。
  • 验证权限与安装位置:在项目Python环境中执行pip show psycopg2查看安装目录,确保Apache运行用户(通常是www-data)对该目录有读取权限。

二、WSGI脚本无'application'应用的问题

  • 检查wsgi.py内容,确保正确导出application:
    import os
    from django.core.wsgi import get_wsgi_application
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', '你的项目名.settings')
    
    application = get_wsgi_application()
    
    注意替换你的项目名.settings为实际配置模块路径,避免拼写错误。
  • 确认Apache配置路径正确性:确保WSGIScriptAlias指向正确的wsgi.py绝对路径,同时配置目录访问权限:
    WSGIScriptAlias / /aa/bb/wsgi.py
    <Directory /aa/bb/>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
    
  • 检查文件权限:确保www-data用户能读取wsgi.py文件。

三、额外排查动作

  • 查看Apache错误日志(通常在/var/log/apache2/error.log),获取更具体的错误细节(如模块路径、权限报错等)。
  • 切换到www-data用户测试环境:
    sudo -u www-data /你的项目Python路径/bin/python
    >>> import psycopg2
    >>> from django.core.wsgi import get_wsgi_application
    
    若此处报错,可直接定位环境或权限问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:03:15