lig*_*nic 11 apache django mod-wsgi
我在CentOS上部署了一个Django应用程序.这是我的httpd.conf文件的样子:
WSGISocketPrefix /var/run/wsgi
<VirtualHost *:80>
WSGIDaemonProcess safe python-path=/usr/lib/python2.6/site-packages
WSGIProcessGroup safe
WSGIScriptAlias / /opt/safe/safe/wsgi.py
<Directory /opt/safe/safe/>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
编辑:这是我的 TEMPLATE_DIRS
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
"/opt/safe/static/templates",
"/var/www/html/static/templates",
)
Run Code Online (Sandbox Code Playgroud)
编辑:这是我的管理员/电子邮件设置:
ADMINS = (
# ('Your Name', 'your_email@example.com'),
('David', 'david@localhost'),
)
SEND_BROKEN_LINK_EMAILS = True
DEFAULT_FROM_EMAIL = 'david@localhost'
SERVER_EMAIL = DEFAULT_FROM_EMAIL
Run Code Online (Sandbox Code Playgroud)
在我的模板目录中,我已经定义了一个自定义500.html文件.当我设置我settings.py有DEBUG = False,我不能在任何地方得到我的网站上没有看到这一习俗500.html页.
更奇怪的是日志文件中没有错误 - 所以我不确定在哪里查看或如何继续.我知道它可以看到模板,因为我的自定义500.html文件,但我不知道是什么导致500内部服务器错误.
编辑:进一步配置后,我设法得到一些错误输出(感谢@Matt史蒂文斯),这是日志输出:
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 89, in get_response
response = middleware_method(request)
File "/usr/lib/python2.6/site-packages/django/middleware/common.py", line 55, in process_request
host = request.get_host()
File "/usr/lib/python2.6/site-packages/django/http/__init__.py", line 223, in get_host
"Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): %s" % host)
SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): [my ip address]
Run Code Online (Sandbox Code Playgroud)
lig*_*nic 12
结果我需要将我的IP地址添加到我的settings.py文件中的"ALLOWED_HOSTS" .由于错误记录,我终于能够看到它.
实际代码:
ALLOWED_HOSTS = ['my.server.ip.address']
Run Code Online (Sandbox Code Playgroud)
Apache重启后,现在一切正常!
您可以尝试将所有内容记录到文件中,以便将原因记录下来.
在系统上添加django的日志文件:
sudo mkdir /var/log/django
sudo touch /var/log/django/error.log
sudo chown <user>:<user> /var/log/django/error.log
chmod 600 /var/log/django/error.log
Run Code Online (Sandbox Code Playgroud)
然后将其添加到settings.py:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'logfile': {
'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/django/error.log'
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'django': {
'handlers': ['logfile'],
'level': 'ERROR',
'propagate': False,
},
}
}
Run Code Online (Sandbox Code Playgroud)
Etvoilà!只需运行你的django服务器并less /var/log/django/error.log告诉你什么是错的.
| 归档时间: |
|
| 查看次数: |
6987 次 |
| 最近记录: |