it-swarm.com.ru

Установка сайта Django на GoDaddy

Я никогда не использовал сайт Django раньше. В настоящее время я пытаюсь настроить его в своем роскошном аккаунте GoDaddy. У кого-нибудь есть документация по установке Python и Django на GoDaddy?

24
Carl W.

Для дальнейшего использования, как я полагаю, вы перешли ...

Можно использовать Django на хостинге GoDaddy, используя VirtualEnv, как они рекомендуют. Python 2.7 изначально установлен и работает нормально, хотя и не является версией по умолчанию для запуска.

  • Разрешите доступ по SSH на вашем сайте.
  • Используйте панель хостинга для настройки вашей собственной базы данных MySQL. Для этого не нужно никаких записей, просто убедитесь, что он существует, и запишите информацию о соединении.
  • SSH в, скачать VirtualEnv.py. Вы можете получить весь архив, но вам нужен только один файл.
  • Запустите '/usr/bin/python2.7 virtualenv.py --system-site-packages your_new_env'
  • Запустите 'source your_new_env/bin/activ'
  • Запустите 'pip install Django'
  • Теперь вы можете напрямую следовать учебным пособиям по Django, за исключением того, что, конечно, не используете runserver (поскольку у вас уже работает веб-сервер) 

Это работает для меня на роскошном аккаунте, хотя я все равно рекомендую всем, кто определенно хочет использовать Django, искать альтернативный хостинг. GoDaddy не очень дружелюбный, и я не уверен, что все продолжит работать.


РЕДАКТИРОВАТЬ

Я понял, что также может быть некоторая путаница в том, как заставить Django нормально работать внутри Apache, без обычных опций mod_ *. Это был мой подход:

  • Создайте свой проект Django где-нибудь за пределами структуры каталогов html. Например, запустите Django-admin в ~/code для создания ~/code/yoursite
  • Следуйте обычной настройке проекта и базы данных, как описано в руководствах по Django.
  • В вашей виртуальной среде Python запустите 'pip install flup'.
  • Создайте следующий скрипт 'Django_cgi.py' внутри ~/code (Обратите внимание на путь 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 предоставляет только встроенную поддержку CGI для старых версий Python, которые мы не можем использовать, поэтому мы должны использовать нашу виртуальную среду. Хотя мы не можем использовать это непосредственно в сценариях CGI, мы, к счастью, можем запустить сценарий оболочки и вызвать его вручную. Правило mod_rewrite просто гарантирует, что весь трафик проходит через Django.

Рекомендации
Django с FastCGI
Начало обучения Джанго
VirtualEnv

38
Chris

Я не знаком с настройками GoDaddy, но в целом вы не можете установить Django на виртуальный хостинг, если он не поддерживается специально (как Dreamhost). Поэтому, если GoDaddy специально не упомянет Django (или, возможно, mod_wsgi или что-то еще) в своей документации, что маловероятно, вы можете предположить, что это не поддерживается.

Теоретически вы можете установить Python и запускать Django из любого места, где у вас есть доступ к Shell и достаточно прав, но вы не сможете фактически обслуживать свой сайт Django как часть вашего общего хостинга (то есть, на порту 80 и отвечая на выбранное вами имя хоста) потому что у вас нет доступа к конфигурации веб-сервера.

Вам понадобится либо VPS (GoDaddy предлагает их, но это не их основная деятельность; Linode и Rackspace - другие варианты), либо общий хост, который специально поддерживает Django (например, Dreamhost), или хост приложения (Heroku или Google App Engine). Я рекомендую Heroku лично, особенно если вы не уверены в настройке и поддержке своего собственного веб-сервера.

2
Andrew Gorcester

Согласно 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 Server на 2.7. Я обновлю этот пост, как только узнаю.

Update: Godaddy утверждает, что вы можете запускать Python на виртуальном частном сервере или выделенном сервере, что, я думаю, возможно, поскольку вы работаете на своем собственном компьютере. Технически вы можете установить на свой компьютер все что угодно. Так что, если Python запускается, Django может работать, но я сомневаюсь, что они знают, как его поддерживать.

2
Franz Noel

Судя по другим ответам, общий хостинг GoDaddy может не поддерживать Django. Кроме того, поиск "Django" в форме поиска ничего не возвращает. Если это так, я думаю, что вам лучше всего использовать авторитетные Django-хостинговые компании, перечисленные здесь и здесь .

1
pram

Вот как я это сделал. 

  1. Создайте на реальном сервере (к которому у вас есть полный доступ) chroot с CENTOS 5.8
  2. Установите там все необходимые пакеты, включая sqlite3-devel, python 2.7, который вы сами скомпилируете, виртуальный env и т.д.
  3. Установите там Django и установите все это.
  4. Сделайте снимок всего chroot и скопируйте его на компьютер,
  5. Для исполнения просто используйте virtualenv, и это работает.

Смотрите readme здесь: https://github.com/lawrencecreates/RHEL5-chroot/blob/master/README Я также изменил код этого инструмента, и это то, что я использовал.

0
h4ck3rm1k3