在GoDaddy上安装django站点

Car*_* W. 30 python django installation install

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

Chr*_*ris 44

为了将来的参考,我假设你已经继续...

可以在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(因为您已经运行了webserver)

这对我来说是一个豪华的帐户,但我仍然建议任何一个肯定想使用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")
    
    Run Code Online (Sandbox Code Playgroud)
  • 在〜/ html中,使用以下某些变体创建或编辑.htaccess文件:

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

    #!/bin/sh
    ~/your_new_env/bin/python ~/code/django_cgi.py 2>&1
    
    Run Code Online (Sandbox Code Playgroud)
  • 确保所有内容都适当地进行chmod(755)

这已经过度简化但功能齐全,并且应该导致将任何页面或文件的每个请求传递给Django.

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

参考
Django with FastCGI
Django教程开始
VirtualEnv