mod_wsgi 解析 WSGI 脚本文件失败 |处理 WSGI 脚本时发生异常 |无法导入“站点”模块

Posted

技术标签:

【中文标题】mod_wsgi 解析 WSGI 脚本文件失败 |处理 WSGI 脚本时发生异常 |无法导入“站点”模块【英文标题】:mod_wsgi Failed to parse WSGI script file | Exception occurred processing WSGI script | Unable to import 'site' module 【发布时间】:2017-11-03 16:56:06 【问题描述】:

我在 centos 6.9 机器上使用 httpd 和 mod_wsgi 和 httpd 这里是相关文件,我正在尝试在 apache 2.15 版本上部署 django,尝试谷歌很多但无法解决问题,任何帮助将不胜感激

django.conf

WSGIPythonHome /home/pbadmin/venv/bin/python
WSGIPythonPath /home/pbadmin/venv/lib/python2.7/site-packages


<VirtualHost *:8888>

   ServerAdmin root@localhost
   ServerName  10.0.48.40
   DocumentRoot /var/www/PBpy
   WSGIScriptAlias / /var/www/PBpy/PBpy/wsgi.py

   WSGIDaemonProcess PBpy python-path=/home/pbadmin/venv/lib/python2.7/site-packages


   ErrorLog "/home/pbadmin/pylogs"
   <Directory "/var/www/PBpy">
     Order deny,allow
     Allow from all
   </Directory>

</VirtualHost>

wsgi.py

import os
import sys

#sys.path.append('/var/www/PBpy')

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "PBpy.settings")

application = get_wsgi_application()

错误日志

[Thu Jun 01 12:27:24 2017] [error] [client 10.0.32.94] mod_wsgi (pid=6148): Target WSGI script '/home/pbadmin/PBpy/apache/django.wsgi' cannot b$
[Thu Jun 01 12:27:24 2017] [error] [client 10.0.32.94] mod_wsgi (pid=6148): Exception occurred processing WSGI script '/home/pbadmin/PBpy/apach$
[Thu Jun 01 12:27:24 2017] [error] [client 10.0.32.94] Traceback (most recent call last):
[Thu Jun 01 12:27:24 2017] [error] [client 10.0.32.94]   File "/home/pbadmin/PBpy/apache/django.wsgi", line 10, in <module>
[Thu Jun 01 12:27:24 2017] [error] [client 10.0.32.94]     import django.core.handlers.wsgi
[Thu Jun 01 12:27:24 2017] [error] [client 10.0.32.94]   File "/home/pbadmin/venv/lib/python2.7/site-packages/django/__init__.py", line 3, in <

【问题讨论】:

【参考方案1】:

一开始你不应该将WSGIPythonHome 设置为python 的二进制文件。阅读:

http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html

了解如何正确设置 Python 虚拟环境。

您还缺少WSGIProcessGroup 指令。您实际上并没有将应用程序委托给已定义的守护进程组。

【讨论】:

以上是关于mod_wsgi 解析 WSGI 脚本文件失败 |处理 WSGI 脚本时发生异常 |无法导入“站点”模块的主要内容,如果未能解决你的问题,请参考以下文章

pip install mod_wsgi 在 vi​​rtualenv 中失败

Django,apache,mod_wsgi - 错误:脚本头过早结束

当我触摸 wsgi 脚本时,带有 mod_wsgi 的烧瓶应用程序不会重新加载

无法在 mod_wsgi 应用程序中写入文件:权限被拒绝

我该如何解决这个问题? mod_wsgi (pid=3445): 目标 WSGI 脚本 '/www/folder/index.py' 不能作为 Python 模块加载

将 apache2 摘要身份验证信息传递给由 mod_wsgi 运行的 wsgi 脚本