在 Dreamhost 上使用 django 出现 500 内部服务器错误
Posted
技术标签:
【中文标题】在 Dreamhost 上使用 django 出现 500 内部服务器错误【英文标题】:getting 500 internal server error with django on dreamhost 【发布时间】:2011-06-26 02:23:38 【问题描述】:所以我不确定这里到底发生了什么,我有点新手。所以我要带你了解我到目前为止所做的事情。
我使用自动化的dreamhost django 设置脚本设置了一个django 项目。然后,按照教程,我在项目的父目录中创建了一个应用程序,然后创建了一些模型(名称等与实际教程模型不同,但没关系)。当我运行 manage.py validate 时,它们验证得很好,所以我认为这意味着语法很好,并且当我运行 syncdb 时,表都已成功创建。当我尝试通过 manage.py shell 与他们交互时,它似乎可以工作。我可以在数据库中创建对象,我可以保存、删除它们、查看它们的值等等。
此时,我尝试访问服务器/管理员并能够访问并登录到管理页面。凉爽的!工作!
我将我的应用添加到我的项目的 INSTALLED_APPS 数组中,然后重新启动,但现在尝试转到管理页面时出现 500 内部服务器错误。
我已经尝试重新运行syncdb,因为显然你应该在添加到 installed_apps 之后这样做,但我想我可能已经这样做了。我不确定如何验证这一点。
在我的服务器日志中我也得到以下信息:
[Fri Feb 11 18:07:13 2011] [error] [client 1**.**.**.142] Premature end of script headers: admin
[Fri Feb 11 18:07:13 2011] [error] [client 1**.**.**.142] Premature end of script headers: internal_error.html
【问题讨论】:
在 settings.py 中将DEBUG
设置为 True
并使用您遇到的完整错误更新您的问题。
【参考方案1】:
听起来你的 python 路径可能是错误的。您将 Django 应用程序放置在父目录中;这意味着您的父目录需要在您的 python 路径中。如果您使用的是 mod_wsgi:
WSGIPythonPath /path/to/parent/dir:/path/to/parent/dir/YourProjectDir:/other/paths:
假设/path/to/parent/dir
是父目录,YourProjectDir
是您选择的项目目录。
如果已配置,请尝试再次运行 syncdb
。我刚刚在我的 DJano 1.2 网站上运行它,它只是告诉我哪些应用程序已同步。它不会覆盖或破坏任何已创建的内容。
【讨论】:
据我记得,DreamHost 不使用 mod_wsgi 可能不相关。另请注意,WSGIPythonPath 仅适用于您使用 Apache/mod_wsgi 的嵌入式模式,而不适用于您使用守护程序模式。守护程序模式的等价物是使用 WSGIDaemonProcess 指令的 python-path 选项。对这两种模式都有效的事情只是在 WSGI 脚本文件中设置 sys.path 。顺便说一句,如果您在 UNIX 系统上,首选配置是使用守护程序模式。如果 Apache MPM 设置不正确,嵌入式模式将无法正常工作。【参考方案2】:重新创建了整个设置并且可以正常工作。
只是一些愚蠢的服务器错误。谢谢大家!
【讨论】:
以上是关于在 Dreamhost 上使用 django 出现 500 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章
Dreamhost主机error id: "bad_httpd_conf" 错误如何解决