【问题标题】:mod_wsgi with Django 500 error带有 Django 500 错误的 mod_wsgi
【发布时间】:2016-04-06 20:30:28
【问题描述】:

我正在使用从源代码安装的 Ubuntu 14.04、Apache 2.4、Python 2.7.6、Django 1.9.5 和 mod_wsgi 4.5.1。

我的文件夹结构如下:

project
 -site
   -mysite
      -apache
         -wsgi.py

wsgi.py:

import os, sys

from django.core.wsgi import get_wsgi_application
sys.path.append('/home/me/project/site')
sys.path.append('/home/me/project/site/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'


application = get_wsgi_application()

在我的主 /etc/apache2/sites-enabled/000-default.conf 文件中,我只编辑了以下内容

<VirtualHost *:80>

ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

    WSGIScriptAlias / /home/seb/project/funel/mysite/apache/wsgi.py
            <Directory "/home/seb/project/funel/mysite/apache">
                    Require all granted
            </Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

我做错了什么?即使重新启动 Apache 没有显示任何问题,我似乎也收到 500 Internal Server Error。

【问题讨论】:

  • 那么您的实际 Apache 站点配置在哪里? (无论如何,在 Ubuntu 上,您根本不应该编辑 apache2.conf。)
  • /etc/apache2/apache2.conf 我应该在 sites-enabled/000-default.conf 中加载模块吗?
  • 不,您应该通过运行 a2enmod 来完成,但这与问题无关。请发布您实际配置 WSGI 别名的 Apache 配置部分。
  • 对不起,我很笨,刚刚编辑了我的问题

标签: python django apache mod-wsgi


【解决方案1】:

听起来您的 apache 配置给您带来了大部分问题。请尝试从 wsgi.py 文件中写入日志文件,并确定服务器是否至少使用了正确的 wsgi 文件。

值得我附上 a_django_site.conf apache 配置文件的内容。此文件应位于 /etc/apache2/sites-available 中,并应使用 sudo a2ensite a_django_site.conf 启用,然后重新加载并重新启动。

Define MY_IP=129.222.333.444
WSGIPythonPath  /home/your_name/.virtualenvs/venv_proj_name/bin/python:/home/your_name/.virtualenvs/venv_proj_name/lib/python2.7/site-packages


<VirtualHost *:80>
ServerAdmin root@localhost
ServerName {MY_IP}
ServerAlias http://{MY_IP}/

DocumentRoot /usr/local/src/proj_dir

Alias /static /usr/local/src/proj_dir/django_static/
Alias /images /usr/local/src/proj_dir/stock/media/
Alias /favicon.ico /usr/local/src/proj_dir/apache/favicon.png

WSGIScriptAlias / /usr/local/src/proj_dir/proj_name/wsgi.py

<Directory />
    Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
</VirtualHost>

【讨论】:

  • 我不知道我做错了什么,但我编辑了你的一些代码,它现在可以工作了!你是个明星!我花了几个小时在这上面!
  • 还可能值得弄清楚您的 Apache 日志的写入位置。他们可能会给你比 500 更多的细节,并且对于包含在这些问题中很有用。做得很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多