32

我以前从未部署过 Django 站点。我目前正在寻找在我的豪华 GoDaddy 帐户中进行设置。有没有人有关于如何在 GoDaddy 上安装 python 和 django 的文档?

4

5 回答 5

48

供将来参考,因为我假设您已经继续...

可以在 GoDaddy 主机上使用 Django,使用他们推荐的 VirtualEnv。Python 2.7 是本机安装的并且工作正常,尽管它不是要运行的默认版本。

  • 在您的站点上启用 SSH 访问。
  • 使用主机面板设置您的初始 MySQL 数据库。它不需要任何条目,只需确保它存在并记下连接信息即可。
  • SSH进去,下载VirtualEnv.py。您可能会获得整个 tarball,但您只需要单个文件。
  • 运行'/usr/bin/python2.7 virtualenv.py --system-site-packages your_new_env'
  • 运行'source your_new_env/bin/activate'
  • 运行'pip install django'
  • 您现在可以直接按照 django 教程进行操作,当然不使用 runserver(因为您已经运行了一个网络服务器)

这适用于我的豪华帐户,但我仍然建议任何绝对想使用 Django 的人寻求替代托管。GoDaddy 不是很友好,我不确定一切都会继续工作。


编辑

我意识到在没有常规 mod_* 选项的情况下,如何让 Django 在 Apache 中正常运行也可能存在一些混淆。这是我的方法:

  • 在 html 目录结构之外的某个地方创建您的 django 项目。例如在 ~/code 中运行 django-admin 以创建 ~/code/yoursite
  • 按照 Django 教程中描述的正常项目和数据库设置进行操作。
  • 在您的虚拟 python 环境中,运行“pip install flup”。
  • 在 ~/code 中创建以下脚本“django_cgi.py”(注意 python 路径!):

    #!~/your_new_env/bin/python
    import sys, os
    
    # Add a custom Python path for your project
    sys.path.insert(0, "/must/be/full/path/to/code/yoursite")
    
    # Set the DJANGO_SETTINGS_MODULE environment variable.
    # This should match the name for the project you added to the path above
    os.environ['DJANGO_SETTINGS_MODULE'] = 'yoursite.settings'
    
    from django.core.servers.fastcgi import runfastcgi
    runfastcgi(method="threaded", daemonize="false")
    
  • 在 ~/html 中,使用以下变体创建或编辑 .htaccess 文件:

    RewriteEngine On
    RewriteCond %{REQUEST_URI} !=/mysite.cgi
    RewriteRule ^(.*)$ /mysite.cgi [QSA,L,PT]
    
  • 最后,创建 ~/html/mysite.cgi 如下:

    #!/bin/sh
    ~/your_new_env/bin/python ~/code/django_cgi.py 2>&1
    
  • 确保所有内容都经过适当的修改 (755)

这过于简化但功能齐全,并且应该导致对任何页面或文件的每个请求都被传递给 Django。

这种跑路的原因是 GoDaddy 只为我们无法使用的旧版本 Python 提供原生 CGI 支持,所以我们必须使用我们的虚拟环境。虽然我们不能直接在 CGI 脚本中使用它,但幸运的是,我们可以运行一个 shell 脚本并手动调用它。mod_rewrite 规则只是确保所有流量都通过 Django。

参考
Django with FastCGI
Start of Django Tutorials
VirtualEnv

于 2012-11-12T06:02:48.670 回答
4

根据 Godaddy 的说法,他们可以使用 Python 2.7.2,如果你有他们的虚拟主机的豪华版,你可以编程。按照我的理解,当您在第一行键入 python 安装的目录位置时,python 就会起作用:

 #!/usr/local/bin/python2.7

但是,当我尝试测试它时,它不起作用。我在我的帐户上启用了 SSH。我尝试与 Putty 连接,如果我运行它,它就可以工作。但是,问题是,该网站只是没有出现。

我试图检查 Python 的版本是什么。我发现它是 Python 2.4.3。所以,我试图找到他们的目录。我发现它可能是:

 #!/usr/local/bin/python2.4

或者

 #!/usr/local/bin/python2.4/site.py - (not sure)

我尝试了每个目录并更改了所有可能的语法。没有任何效果。

这是支持 Python 的文章:http: //support.godaddy.com/help/article/7254/can-i-use-python-272-with-my-hosting-account ?locale=en

因此,根据我的观察,任何一个答案都可能是正确的:

  • Godaddy 声称他们支持 Python。但是没有能力支持它。
  • Godaddy 支持 Python。但是,他们的技术支持人员不知道他们的服务器是如何工作的。
  • Godaddy 声称他们支持 Python。但是,他们真的没有。

但在下结论之前,我已经请求将我的 Godaddy Python 服务器更改为 2.7。一旦我发现,我会更新这篇文章。

更新: Godaddy 声称您可以在虚拟专用服务器或专用服务器上运行 Python,我认为这是可能的,因为您正在运行自己的计算机。从技术上讲,您可以在自己的计算机上安装任何东西。因此,如果 Python 运行,Django 可能会运行,但我怀疑他们是否知道如何支持它。

于 2012-09-30T07:12:42.613 回答
3

我不特别熟悉 GoDaddy 的设置,但一般来说,除非特别支持(如 Dreamhost),否则您无法在共享主机上安装 Django。因此,除非 GoDaddy 在他们的文档中特别提到 Django(或者可能是 mod_wsgi 或其他东西),这是不太可能的,否则您可以假设它不受支持。

从理论上讲,您可以在任何拥有 shell 访问权限和足够权限的地方安装 Python 并运行 Django,但是您将无法实际将 Django 站点作为共享主机的一部分提供服务(即,在端口 80 上并响应您选择的主机名)因为您无权访问网络服务器配置。

您将需要一个 VPS(GoDaddy 提供但它不是他们的核心业务;Linode 和 Rackspace 是其他选项),或专门支持 Django 的共享主机(例如 Dreamhost),或应用程序主机(Heroku 或 Google App Engine)。我个人推荐 Heroku,特别是如果您对设置和维护自己的网络服务器没有信心。

于 2012-09-30T08:09:31.710 回答
2

从其他答案看来,GoDaddy 共享主机可能并不真正支持 Django。此外,在搜索表单中搜索“django”不会返回任何内容。如果是这样的话,我认为你最好的选择是使用这里这里列出的信誉良好的 Django 友好托管公司。

于 2012-09-30T18:19:48.460 回答
0

我就是这样做的。

  1. 使用 CENTOS 5.8 在真实服务器(您可以完全访问的服务器)上创建 chroot
  2. 在那里安装所有需要的包,包括 sqlite3-devel、你自己编译的 python 2.7、虚拟环境等。
  3. 在那里安装 django 并进行设置。
  4. 对整个 chroot 进行快照并将其复制到机器上,
  5. 对于执行,只需使用 virtualenv 即可。

请参阅此处的自述文件:https ://github.com/lawrencecreates/RHEL5-chroot/blob/master/README我还修改了该工具的代码,这就是我使用的。

于 2013-09-30T00:25:24.013 回答