【问题标题】:Django app deployment on shared hosting共享主机上的 Django 应用程序部署
【发布时间】:2016-04-15 10:46:44
【问题描述】:

我正在尝试在 hostgator 共享主机上部署一个 django 应用程序。我遵循了 hostgator django 安装 wiki 并部署了我的应用程序。问题是我在浏览器中输入网站网址时收到 500 错误内部页面。我联系了支持团队,但无法提供足够的信息来解决错误Premature end of script headers: fcgi。这是在服务器错误日志中发现的错误。

我在服务器上安装了 django 1.9.5,从 django 文档看它不支持 fastcgi。

所以我的问题 500 错误是由于我在服务器上运行 django 1.9.5 并且它不支持 fastcgi 引起的。如果是这样我需要安装较低版本的 django 以支持 hostgator 共享主机支持的 ​​fastcgi

首先我认为错误是由我的 .htaccess 文件引起的,但从我从支持团队那里听到的内容没有问题。

任何有关我如何启动和运行应用程序的线索将不胜感激。这是我第一次使用 django 应用程序部署。提前谢谢你

【问题讨论】:

  • 脚本标题过早结束可能:您的第一行声明丢失(哪个应用程序运行此代码#!/usr/bin/python?)或在您的应用程序脚本上打印了任何数据(在烧瓶上启用 cgitb ) 和How to register your app ?chmod a+x your_app.py。询问您的服务提供商(因为您想要访问服务器环回)
  • @dsgdfg 在您的应用脚本上打印任何数据是什么意思?我还更改了 manage.py 的执行权限,但似乎都没有工作

标签: python django


【解决方案1】:

我知道我问这个问题已经有一段时间了。我终于通过更改主机解决了这个问题。我选择了支持 wsgi 的 Digital Oceans(创建了一个新的 droplet)。我使用 gunicorn(应用服务器)和 nginx(代理服务器)部署了应用程序。

在共享主机上部署 Django 应用程序不是一个好主意,因为您将受到限制,尤其是安装所需的包。

【讨论】:

    【解决方案2】:

    今天许多支持 python 的主机都使用 Phusion Passenger,我已经能够在其上成功部署 Django。在我分享这个过程之前,让我提一下我在做这个过程中遇到了很多问题,现在我有了解决所有这些问题的方法。我已经在我的博客here 上编写了分步指南,用于在共享主机上部署 Django 应用程序。

    • 在 cpanel 中启动一个新的 python 应用程序。指定您希望应用程序所在的 url 以及您要放置应用程序内容的文件夹。将应用程序启动文件设置为passenger_wsgi.py,将应用程序入口点设置为application
    • 复制命令进入虚拟环境,通过在线终端CPanel或SSH运行。
    • 安装 Django 2.1 版本(最新的 2.2 将不起作用)pip install django==2.1
    • 将您的 django 项目上传到您在设置应用程序时指定的文件夹。该文件夹中将有一个 passenger_wsgi.py 文件。编辑它并输入以下代码:(将 myapp 替换为您的应用程序名称)

    from myapp.wsgi import application

    【讨论】:

      【解决方案3】:

      如你所说,Django 1.9 不支持 FastCGI。

      您可以尝试使用 Django 1.8,它是一个长期支持版本,并且仍然支持 FastCGI。

      或者您可以切换到支持使用 wsgi 部署 Django 1.9 的其他主机。

      【讨论】:

      • 我将 django 降级到 1.8.4,但仍然出现 500 错误页面。这也是我在错误日志中得到的 [Fri Apr 15 07:07:48 2016] [warn] [client 192.185.1.20] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server [Fri Apr 15 07:07:48 2016] [错误] [客户端 192.185.1.20] 脚本头过早结束: index.fcgi 。有什么线索吗?
      • CGI : HTTP/1.0 200 OK\r\n\n +内容标题 +内容。 500 error a from x import y (X ?),在标题前打印一些东西(错误的 cgi-header/headers),语法错误,错误的第一行(哪个应用程序需要运行代码(`#!/usr/bin/python` )),
      • 对不起,我无法在 fastcgi 上部署 Django。希望你设法让它工作。
      • @dsgdfg 我的 python 标头路径是正确的。使用了我从命令“which python”中得到的那个。否则我不知道下一步该怎么做
      • 在同一个端口上使用了更多连接(fastcgi 使用了 x 并且您的应用程序需要使用 y 端口),您无法使用多个应用程序监听一个端口!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 2015-10-31
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      相关资源
      最近更新 更多