2012-09-30 150 views
22

我以前从未部署过Django网站。我目前正在考虑将其设置在我的豪华GoDaddy帐户中。有没有人有关于如何在GoDaddy上安装python和django的文档?在GoDaddy上安装django网站

+0

这不是一个好主意...请看看http://openshift.redhat.com –

+1

最好的Python支持是Google App Engine。在我看到使用GAE时,Stackoverflow中有很多Python程序员。我确信Django会运行它。 https://developers.google.com/appengine/articles/django –

+0

Go Daddy Linux共享主机支持Python(但不是经济级别计划)。但是Django不支持,因为mod_wsgi没有安装在我们的共享主机环境中。 –

回答

34

以供将来参考,因为我假定你已经转移...

有可能使用Django上GoDaddy的托管,使用VIRTUALENV为他们推荐。 Python 2.7本地安装并且工作正常,但它不是要运行的默认版本。

  • 在您的网站上启用SSH访问。
  • 使用主机面板来设置您的初始MySQL数据库。它不需要任何条目,只要确保它存在并记下连接信息即可。
  • SSH中,下载VirtualEnv.py。你可能会得到整个tarball,但你只需要单个文件。
  • 运行 '/usr/bin/python2.7 virtualenv.py --system-site-packages中your_new_env'
  • 运行 '源your_new_env /斌/激活'
  • 运行 'PIP安装Django'
  • 你现在可以直接按照Django的教程,当然除了不使用的runserver(因为你已经有了一个Web服务器运行)

这为我工作在一个豪华的帐户,但我还是会建议任何人谁一定要使用Django寻求替代托管。 GoDaddy不是很友善,我不确定一切都会继续工作。


编辑

我意识到,也可能是如何获得的Django在Apache正常运行有些混乱,不正规mod_个*选项。这是我的做法:

  • 在html目录结构之外的某处创建您的django项目。例如,在〜/ code中运行django-admin来创建〜/ code/yoursite
  • 按照Django教程中描述的正常项目和数据库设置。
  • 从您的虚拟python环境运行'pip install flup'。
  • 内创建〜/代码下面的脚本 '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)

这是相对于简化的但功能,并应导致对任何页面或文件中的每个请求被chmod'ed冒充在模块中使用。

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

参考
Django with FastCGI
Start of Django Tutorials
VirtualEnv

+0

经过了两天试图在godaddy上设置django后,这帮了大忙。谢谢 – alok

2

根据Godaddy的说法,他们可以使用Python 2.7.2,并且如果你有他们的虚拟主机的豪华版本,你可以编程。我的理解是,蟒蛇将工作的那一刻,你的第一行上键入你的Python安装的目录位置:

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

但是,当我试图对它进行测试,这是行不通的。我在我的帐户上启用了SSH。我试图与腻子连接,如果我运行它,它会起作用。但问题是,该网站并没有显示出来。

我试图检查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可能会运行,但我怀疑他们是否知道如何支持它。

+0

Python支持不足以实际以可用的方式在Web服务器上部署Django。你可能可以在高编号的端口上为Django服务,但在大多数情况下,这对你不会有好处。 –

+0

我明白。我的观点是,如果他们有支持Python的问题。如果是django,还有什么? –

+0

那很不幸。我注册了豪华版,因为我被告知它可以处理Django。时间去寻找新的托管。 –

2

我对GoDaddy的设置并不熟悉,但总的来说,除非特别支持(la Dreamhost),否则不能在共享主机上安装Django。所以除非GoDaddy在他们的文档中特别提到了Django(或者可能是mod_wsgi或其他东西),这是不太可能的,你可以认为它不被支持。

理论上来说,您可以在任何有shell访问权限和足够权限的地方安装Python并运行Django,但是您将无法真正为您的Django站点提供服务作为共享主机的一部分(即,在端口80上并响应您选择的主机名),因为您无权访问Web服务器配置。您将需要一个VPS(GoDaddy提供它们,但它不是他们的核心业务; Linode和Rackspace是其他选项),或者是专门支持Django(例如Dreamhost)的共享主机,或者应用程序主机(Heroku或Google App Engine)。我个人推荐Heroku,特别是如果你对建立和维护自己的Web服务器没有信心。

1

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

0

这是我做到了。

  1. 创建一个真正的服务器上(一个你可以完全访问)在CentOS一个chroot 5.8
  2. 安装所有所需的软件包存在,包括sqlite3的-devel的,你自己编译一个Python 2.7,虚拟ENV等。
  3. 在那里安装django并将其设置完成。
  4. 快照整个chroot并将其复制到机器上,
  5. 对于执行,只需使用virtualenv并且它可以工作。

查看这里的自述:https://github.com/lawrencecreates/RHEL5-chroot/blob/master/README我也修改了该工具的代码,它就是我使用的。