在 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:MySQL外键

在Dreamhost共享服务器上重新启动rails服务器

Dreamhost主机error id: "bad_httpd_conf" 错误如何解决

Dreamhost 提示No input file specified. 的解决的方法

相当于 Dreamhost 的 Asp.net 托管(定价、功能和支持)[关闭]