在GoDaddy上安装Django站点

2024-04-30 00:37:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我以前从未部署过Django站点。我目前正在寻找建立在我的豪华戈达迪帐户。有没有关于如何在GoDaddy上安装python和django的文档?


Tags: django文档站点部署帐户godaddy
3条回答

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

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

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

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

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

但是,当我试着测试的时候,它不起作用。我在我的帐户上启用了SSH。我试着用油灰连接,如果我运行它,它就会工作。但是,问题是,网站只是没有出现。

我试着检查Python的版本。我发现它是Python2.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可能会运行,但我怀疑他们是否知道如何支持它。

作为将来的参考,我想你已经开始。。。

可以在GoDaddy主机上使用Django,按照他们的建议使用VirtualEnv。Python2.7是本机安装的,工作正常,尽管它不是要运行的默认版本。

  • 在您的站点上启用SSH访问。
  • 使用宿主面板设置初始MySQL数据库。它不需要任何条目,只要确保它存在并记下连接信息。
  • SSH-in,下载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(因为您已经运行了一个webserver)

这对我来说是一个豪华的帐户,虽然我仍然建议任何人谁肯定想使用Django寻求替代托管。戈达迪不是很友好,我不确定一切都会继续工作。


编辑

我意识到,在没有常规mod戥ux选项的情况下,如何让Django在Apache中正常运行可能会有些混乱。这是我的方法:

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

    #!~/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

相关问题 更多 >