mod_wsgi 出现 Django 500 错误
mod_wsgi with Django 500 error
我正在使用从源安装的 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>
我做错了什么?我似乎收到了 500 Internal Server Error,即使重新启动 Apache 没有显示任何问题。
听起来大部分问题都是您的 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>
我正在使用从源安装的 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>
我做错了什么?我似乎收到了 500 Internal Server Error,即使重新启动 Apache 没有显示任何问题。
听起来大部分问题都是您的 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>