Hosting — Как Django сайт загрузить на хостинг


Содержание

Развертывание Django проекта на виртуальном хостинге

Недавно перенес оба-два свои блога на WordPress с Петерхоста на Locum. Пока полет нормальный — Locum дешевле, удобней и стабильнее. Также я рекомендовал этот хостинг заказчику для размещения небольшого Django сайта, который я сейчас разрабатываю. О том, как развернуть Django 1.4 проект на виртуальном хостинге Locum.ru, и пойдет речь в этом посте.

Итак, в панели управления создаем новый проект, например, mysite.

Заходим на сервер по SSH и скачиваем последний virtualenv:

1 wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py

Создаем виртуальное Python окружение:

1 python virtualenv.py

/ env /mysite

Флаг —no-site-packages указывать не нужно — теперь это поведение по умолчанию.

/ env / mysite / bin / activate

На локальной машине создаем и редактируем файл зависимостей проекта:

1 pip freeze > req.txt

Заливаем файл на сервер и устанавливаем все необходимые пакеты:

1 pip install -r req.txt

С подготовкой окружения закончили, переходим непосредственно к работе с проектом. Все проекты находятся в директории

Использование python на виртуальном хостинге

Пример развертывания Django-приложения на виртуальном хостинге.

Для добавления приложения нам потребуется в первую очередь добавить домен, на котором оно будет работать, в cPanel.
Это необходимо сделать через меню Дополнительные домены.

После добавления домена можно разместить существующее приложение используя git или загрузив его при помощи FTP-клиента в папку добавленного домена.

Создание нового приложения.

Для создания нового приложения можно использовать SSH-доступ к хостингу, через Терминал в панели или подключившись через удобный Вам клиент для доступа, к примеру, Putty.

Открываем меню Настройка Python приложений и создаем приложение с нужной нам версией python, при создании указываем путь к каталогу созданного ранее сайта в поле App Directory.

После создания приложения подключаемся по ssh, переходим в каталог приложения и входим в виртуальное окружение. Команда для входа в виртуальное окружение будет отображена в настройках добавленного нами приложения.

Перед установкой необходимых модулей для django мы подключем уже установленные модули для работы с БД MySQL.

Добавление в виртуальное окружение модуля mysqlclient

Обратите внимание на то, что некоторые модули нет возможности установить самостоятельно на виртуальном хостинге так как доступ к компиляторам необходимый для этого ограничен. Для решения проблемы Вам необходимо будет сделать симлинк в папке виртуального окружения на модуль

В данном случае мы сделаем симлинк на модули mysqlclient и MySQLdb — рекомендуемые для подключения к mysql в Django.

Открываем терминал в cPanel или подключаемся по ssh с Вашей учетной записью к серверу хостинга, далее переходим в каталог виртуального окружения, посмотреть каталог виртуального окружения можно на на странице созданного приложения.

В каталоге виртуального окружения создаем симлинк на модуль MySQLdb командой.

ln -s /opt/alt/python35/lib64/python3.5/site-packages/MySQLdb ./lib/python3.5/site-packages/

Для модуля mysqlclient команда соответственно будет такой.

ln -s /opt/alt/python35/lib64/python3.5/site-packages/mysqlclient-* ./lib/python3.5/site-packages/

**Для другой версии python, к примеру, для версии 3.7 симлинк нужно делать с другой папки.

Добавление в виртуальное окружение модуля django-admin

Далее добавляем модуль django-admin и остальные зависмости — screen, pytz, xlwt, django-six, django-excel-response2

После добавления модулей установливаем модуль django, используем для установки команду pip install django

После завершения установки модулей мы можем посмотреть версии установленных в окружении модулей при помощи команды pip list или в cPanel во вкладке modules.

Далее создаем наше приложение при помощи команды django-admin startproject django_test ., замените название проекта(django_test) на желаемое. Точка в конце команды указывает на то, что проект должен быть создан в текущей папке.

После выполнения команды будет добавлен каталог приложения в текущей папке, название папки проекта соотсветсвует имени проекта, в нашем случае — django_test, и файл manage.py.

Для выхода из виртуального окружения используйте команду deactivate.

Настройка работы django c mysql

Далее настроим подключение к БД mysql, для этого редактируем настройки приложения в файле название_проекта/settings.py, и вместо sqlite указываем подключение к БД MySQL.

Необходимо заменить указанную ниже часть файла settings.py.

На такие значения

**При активации нового заказа хостинга автоматически создается база данных, параметры подключения к ней можно узнать в личном кабинете. Так же Вы можете создать новую базу данных используя информацию из статьи

После обновления данных в настройках запускаем миграцию данных в корневом каталоге сайта.

python manage.py migrate

Результат запуска команды в консоли будет выглядеть следующим образом.

Важно: не забудьте указать название Вашего домена в файле название_проекта/settings.py, для корректной работы приложения.

Пример для домена django-test.com выглядит следующим образом.

После изменения параметров необходимо перезапустить приложение, для этого в параметрах приложения в cPanel нажимаем кнопку Restart.

Далее в панели указываем путь к файлу wsgi, вводить требуется полный путь, а не относительный. Для нашего проекта путь будет следующим.

Так же обязательно необходимо указать тип приложения через двоеточие после указания полного пути, для Django необходимо указать application.

После указания необходимых данных нажимаем Update. Будет автоматически создан файл passenger_wsgi.py в котором будет указан путь к файлу wsgi.py в каталоге приложения, этот файл нужен для корректного запуска приложения.

Если ошибок при обновлении приложения не возникло — настройка завершена. Вы можете перейти на Ваш сайт в браузере и проверить его работу.

Hosting — Как Django сайт загрузить на хостинг?

На хостинге доступен python2.6 и Django 1.1.1.

Использоваться будет Apache + FastCGI (http://docs.djangoproject.com/en/dev. yment/fastcgi/) (также, при желании, можно настроить nginx + fastcgi).

Порядок установки:
1) заходим в панель управления хостингом в раздел «Веб-сервер»\»Управление модулями»
2) включаем модули mod_fastcgi и mod_rewrite.
Отключаем модуль PHP, если его использование не планируется.

3) создаём директорию для проектов:

python -W ignore::DeprecationWarning ./manage.py runserver 123.45.67.89:8000

Узнать IP-адрес сервера можно в конфигах, либо такой командой:
$ cat $HOME/etc/httpd.conf.auto | grep ‘ServerName’ |sed ‘s/ServerName\ /»/g’
123.45.67.89

python -W ignore::DeprecationWarning

/django/project/manage.py runfcgi method=prefork maxrequests=1000 maxspare=3 minspare=2 maxchildren=3 daemonize=true socket=/tmp/project.sock p >

/etc/rc.d/fastcgi_project.sh
chmod u+x

/etc/rc.d/fastcgi_project.sh добавляем следующие данные (сохранять следует с переводом строки CR(Unix))
— можно отредактировать с помощью редактора mc:

FastCGIExternalServer sitename.ru/docs/index.fcgi -socket /tmp/project.sock

— в конце файла конфигурации обязательно добавляем пустую строку
— сохраняем

9) настраиваем sitename.ru:
— в директории сайта sitename.ru/docs создаём файл .htaccess со следующим содержимым:

Меню пользователя Артем Юров
Посмотреть профиль
Найти ещё сообщения от Артем Юров
10.12.2009, 10:48 #2
Меню пользователя Anatoly Popov
Посмотреть профиль
Отправить личное сообщение для Anatoly Popov
Найти ещё сообщения от Anatoly Popov
11.12.2009, 16:11 #3
Меню пользователя Артем Юров
Посмотреть профиль
Найти ещё сообщения от Артем Юров


Прекрасная статья, спасибо Артем!
Очень помогла мне перенести к вам сайт сегодня без проблем)

Кстати, а вот на будущее, я думаю. Если понадобится поставить какие-то модули к питону?

И еще. Если было бы можно у вас использовать систему контроля версий GIT — точно бы переехал к вам с доброй половиной моих django приложений.

06.03.2010, 22:12 #4
Меню пользователя Applecat
Посмотреть профиль
Отправить личное сообщение для Applecat
Найти ещё сообщения от Applecat

/.pydistutils.cfg со следующим содержимым:

/.bashrc со следующим содержимым:

07.03.2010, 21:23 #5
Меню пользователя Артем Юров
Посмотреть профиль
Найти ещё сообщения от Артем Юров
11.09.2010, 12:26 #6
Меню пользователя Anatoly Popov
Посмотреть профиль
Отправить личное сообщение для Anatoly Popov
Найти ещё сообщения от Anatoly Popov

При запуске сервера возникает ошибка:

19.09.2010, 11:28 #7
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein
19.09.2010, 20:34 #8
Меню пользователя Godzilla
Посмотреть профиль
Найти ещё сообщения от Godzilla
20.09.2010, 09:00 #9
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein
20.09.2010, 09:12 #10
Меню пользователя savel
Посмотреть профиль
Отправить личное сообщение для savel
Посетить домашнюю страницу savel
Найти ещё сообщения от savel

Был произведён эксперимент, в ходе которого пустой проект с набором модулей, аналогичным тем, что установлены на Вашей услуге хостинга, на той же хост-машине успешно запустился.

Предположительно, причина неработоспособности кроется в самих размещённых Вами на хостинге файлах проекта.

Более подробные рекомендации Вам даны в ответном письме.

20.09.2010, 15:10 #11
Меню пользователя Станислав Муравьев
Посмотреть профиль
Найти ещё сообщения от Станислав Муравьев
20.09.2010, 20:44 #12
Был произведён эксперимент, в ходе которого пустой проект с набором модулей, аналогичным тем, что установлены на Вашей услуге хостинга, на той же хост-машине успешно запустился.

Предположительно, причина неработоспособности кроется в самих размещённых Вами на хостинге файлах проекта.

Более подробные рекомендации Вам даны в ответном письме.

Меню пользователя Godzilla
Посмотреть профиль
Найти ещё сообщения от Godzilla

Спасибо за ответ, анализ был проведен, так же было опробовано следующее: отключил все модули, что были мной написаны, все равно выдавало такую же ошибку.

с утра начал делать немного по другому, сначала создал все модули через manage.py вручную. После создания скопировал уже написанный код в новый проект. Дальше строчка за строчкой правил сеттинги к тому формату что у меня в файле..

и что интересно — заработало. ничего лишнего в коде не правил — не добавлял.

перехожу к настройке апача, глянем как дальше пойдет..

21.09.2010, 08:41 #13
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein

Сайт поднялся, однако:

Возникла следующая проблема.
Отправка сообщений ни в какую не желает отправляться

отчего же такой запрет?

при этом с этого адреса разрешено отправлять сообщения в панели управления, но что-то мне подсказывает что далеко не адрес там подставляется.

21.09.2010, 09:54 #14
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein
21.09.2010, 10:58 #15
Меню пользователя Станислав Муравьев
Посмотреть профиль
Найти ещё сообщения от Станислав Муравьев

Стандартная функция Django:

send_mail(u»Сообщение с сайта», m.message, ‘тут@мыло от’, [‘тут@мыло кому’], fail_silently=False)

дополнительно ничего не настраивал, видимо берется по умолчанию значения.

чуть читанул, пошел переделывать скрипт для отправки через сендмайл, поглядим что получиться

21.09.2010, 11:19 #16
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein

Все, сделал принудительную отправку через sendmail, по примерной инструкции:

Подготовка и запуск Django на общем хостинге

Минимальный проект Django

Все указанные файлы и подкаталоки создаём в директории public_html Вашего домена.
Создание нового проекта

.htaccess

Необходим для перенаправления запросов на основной скрипт

run.py

Основной файл запуска приложения. Необходимо установить права на выполнение +x

Поделиться ссылкой:

Похожее

Комментарии

Всё сделал точно по инструкции, но при переходе на домен в браузере получаю:

lscgid: execve():/home/ПОЛЬЗОВАТЕЛЬ/domains/МОЙДОМЕН/public_html/run.py:
Permission denied

PS. Права у файла run.py = 755

Что я делаю не так?

Всё решилось само собой. Надо было просто подождать немного. Спасибо за статью!

Создание сайта на Python/Django: подбор хостинга

Published 16.01.2020 · Updated 14.09.2020

Сегодня немного забегу вперед и остановлюсь на вопросе выбора хостинга для проекта на Django/Python, т.к. это весьма важный вопрос, к которому стоит подойти с высокой долей ответственности. Делая подбор хостинга необходимо заранее учитывать особенности вашего проекта и путь его дальнейшего развития, но это вовсе не значит, что необходимо покупать дорогой вариант с запасом на будущее. Запас конечно необходим, но без лишнего фанатизма. Ведь всегда можно будет докупить мощности, т.е. перейти в более дорогой пакет обслуживания.

Выбираем VDS для Django-проекта

На мой взгляд, на начальном этапе для запуска проекта на Django в т.н. production понадобиться самый простой VDS или же виртуальный выделенный сервер. Возникает вопрос – как определить необходимую производительность такого сервера?

Ответ на этот вопрос будет зависеть от масштаба реализуемого проекта, но логично, что мы уклонимся от сложных стресс тестов и прочих процедур, которые проводят в крупных проектах. Там это важно, но так как мы пока делаем сайт самостоятельно и его посещаемость и масштабы вряд ли будут чрезмерно большими, а посещаемость не выстрелить сразу до пару сотен тысяч посетителей, то мы пропустим сложности и рассмотрим самый простой вариант с минимальными, на мой взгляд, значениями по ресурсам для запуска. Буду исходить из собственного опыта по одному из моих проектов.

Минимальные требования к ресурсам VDS на старте проекта на Django

Для запуска небольшого сайта, реализованного на Django/Python я использую сервер VDS с 1 ядром по процессору 2,4 GHz, 2 GB оперативной памяти и 10 Gb SSD диска. На таком сервере у меня работает проект с посещаемостью около 200-300 уников в сутки. При этом стоит понимать, что в зависимости от сложности реализованных алгоритмов в работе сайта, ориентироваться только на количество посетителей не стоит. Возможно возникнет необходимость в увеличении количества ядер и/или ОЗУ. Дополнительное место на диске так же может понадобиться, если планируется загрузка объемного медиа-контента, хотя лучше для этих целей использовать отдельные сервера. Ровно так же и с базой данных. Если проект предусматривает значительные объемы и частые запросы к БД, то БД лучше развернуть на отдельном сервере, но для старта это нам тоже не понадобиться и мы обойдемся одним сервером, на котором будут работать все и сразу.


Как развернуть проект на базе Django / Python на сервере VDS

И так, чтобы развернуть проект на базе Django / Python на сервере я использую Dokku. Dokku – это мини-Heroku и самая компактная реализация PaaS (Platform as a Service – платформа как сервис). Если вы еще не знаете, что такое Heroku, то спросите у Google. Преимущество Heroku и его альтернативы в виде Dokku заключается в простоте процесса выгрузки и запуска проекта в продакшн, т.к. работа происходит через Git. Если вы еще не знает, что такое Git, то подробнее можно посмотреть снова в Гугл, а если коротко, то это система управления версиями. Проще говоря, каждый раз когда вы хотите внести изменения в код вашего проекта, вы создаете некую запись в структуре Git и в ней будут отображены изменения в коде по отношению к предыдущим версиям. Это удобно, т.к. вы всегда можете отследить изменения в коде, выявить причины изменений, вернутся к более ранним версиям и т.п. При разработке ПО это обязательная вещь, но, как показывает практика, его используют не только программисты, но и ученые, педагоги и многие другие для сохранения истории своей работы над тем или иным проектом.

При выгрузке проекта в продакшн Git используется как источник кода для передачи на сервер и его запуска. В свою очередь Dokku, при условии, что вы настроили проект верно, определяет необходимые компоненты для установки на стороне сервера, создает среду, обеспечивает работу кода и связь между компонентами проекта (такими как БД или файловое хранилище).

И так, думаю, что пока я наговорил слишком много моментов, которые могут показаться отпугивающими для новичков. Поэтому, на данном этапе предлагаю сделать перерыв и усвоить изложенное, а в одной из следующих публикаций продолжим разработку нашего проекта на Django и, само собой, установим Dokku на сервер и сделаем свой первый деплой в продакшн.

Публикация Django-проекта на хостинге Timeweb

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

Подключаюсь к серверу через SSH протокол, создаю виртуалку, файлы index.wsgi и .htaccess согласно этой инструкции, клонирую git репозиторий туда, потом через панель на Timeweb «создаю сайт» и указываю папку с клоном. При переходе по доменному имени ничего не происходит.

Так же пробовал создавать через выбор CSM в панели Timeweb, но так же безрезультатно.

И такой еще вопрос, как поступить с БД? Разрабатывал на SQLite

5 ответов

С полгода назад ставил на Django проект на Timeweb. Сам не справился, в поддержке получил следующую инструкцию (она вроде бы несколько отличается от той, что по ссылке, надеюсь поместится). Попробуйте ей проследовать, а если на каком-то этапе будет ошибка, пишите на каком и домен вашего сайта, посмотрим что еще можно предпринять:

Вы можете произвести установку виртуального окружения в Вашу домашнюю директорию, после чего можно использовать pip для установки библиотек Python. Подробно о том, что представляет из себя виртуальное окружение Python, Вы можете прочитать в документации, которая доступна по адресу https://virtualenv.pypa.io/en/latest/

Установить виртуальное окружение можно следующими командами:

/myenv
где Х.Х — необходимая версия virtualenv

Для активации локального виртуального окружения используется source:

После того как Вы произведете установку и активацию виртуального окружения, Вы сможете установить django с помощью pip:

pip install django

Далее, чтобы развернуть проект, необходимо создать файл .htaccess в папке public_html сайта со следующим содержанием:

Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond % !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]

Также необходимо создать файл index.wsgi. Для версии django меньше 1.7 c содержанием:

import os
import sys

sys.path.append(‘/home/u/user/app/’) #путь до проекта django
sys.path.append(‘/home/u/user/myenv/lib/python2.7/site-packages/’) # путь до django
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘app.settings’ #app — название проекта django.

from django.core.handlers import wsgi
application = wsgi.WSGIHandler()

Для версии django 1.7 и выше c содержанием:

import os
import sys

sys.path.append(‘/home/u/user/app/’) #путь до проекта django
sys.path.append(‘/home/u/user/myenv/lib/python2.7/site-packages/’) # путь до django
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘app.settings’ #app — название проекта django.

import django
django.setup()

from django.core.handlers import wsgi
application = wsgi.WSGIHandler()

Именно этой инструкцией я и пользовался, но все равно ничего не выходит, переход по домену дает ровным счетом ничего, а именно «Не удается получить доступ к сайту»
Путь в index.wsgi прописал точно до проекта
Нет никаких идей как это все отлаживать(

А у вас в итоге получилось запустить проект?
Где должна лежать папка public_html и что в ней должно находиться кроме index.wsgi и .htaccess?

Обычно ошибка «Не удается получить доступ к сайту» отдается браузером, когда нет доступа к ресурсу, обычно это не проблемы проекта или кода.

Попробуйте проверить доступ к сайту через консоль, к примеру тем же пингом, должен отдаваться ip сервера, если отдается нужный, то попробовать другой браузер или режим инкогнито, если отдается другой ip, то стоит проверить настройки компа(hosts) или настройки домена, может задан ip другого сервера

«Так же пробовал создавать через выбор CSM в панели Timeweb, но так же безрезультатно»

Почему -же? все ставится прекрасно из коробки. Я по началу был в восторге!
Другое дело если вам будут нужны сторонние зависимости, например Pillow для картинок, то поставить не получится, у вас не будет прав. Поэтому только virtualenv по инструкции выше..

Структуру своего проекта я сделал такую-же как и делает timeweb при установки django из панели. Там есть отличия от локального сервера: static и media вынесены в public_html. .htaccess и index.wsgi делаете как написано в инструкции выше. Все там должно работать. Единственное я не знаю что нужно сделать, чтобы не вываливалась 500 когда юзер пытается загрузить файл с русскими буквами. Пробовал прописывать utf-8, не получилось.

С MySQL работаете так-же как и SQLite. Создаете базу, в настройках settings.py указываете ее параметры. Не забываем в окружении поставить pip install MySQL-python >Миграции > суперюзер > Экран приветствия!

Если хотите использовать SQLite? Проблем не должно быть, разве что пароли указать и хост. Поддержка SQLite вроди как встроена в python изначально.

Совет, поставте django из коробки, посмотрите какой там settings.py .htaccess index.wsgi, пермишены на папки. И уже свой проект в virtualenv по аналогии.

timeweb/django2.1.5/virtualenv-16.2.0/python3.5.2
Установка происходит, а вот с запуском косяки.

Создаем сайт с поддержкой python3.5
Заходим по ssh на хостинг

Активация окружения
source

Установка Django
pip install Django==2.1.5
можно без ==2.1.5
удаление если надо то pip uninstall Django

Установка прав Плохой совет, но без него ошибка прав доступа при инициализации проекта.
chmod -R 777

Инициализация проекта, тут я не уверен :)
удалить каталог public_html
django-admin.py startproject каталогВашегоСайта

Создание символической ссылки на ваше приложение оно одноименно с именем каталога вашего сайта, поээтому такая странная ссылка получается.
ln -s

Django хостинг

21.09.2010, 11:34 #17
Здесь описано как дистанционно установить Django на хостинге, позволяющем это сделать.
Я размещаю свои сайты на Django, в том числе и свой сайт стихов, и этот сайт здесь.

Это — виртуальный выделенный сервер (VDS) по абсолютно виртуальной цене от

250 руб в месяц. На нем можно разместить любой сайт, требующий нестандартного программного обеспечения, в том числе Django сайт.

Что такое VDS? VDS — это практически полноценный выделенный сервер, на котором вы — полный хозяин: вы можете установить или удалить любое программное обеспечение, вы можете конфигурировать все, что угодно, под свои нужды, вы можете перезагружать сервер или отключить его совсем и установить другой. Root доступ, отличная панель управления, возможность не только разместить множество собственных сайтов, но и перепродавать услуги хостинга, техническая поддержка.

При этом ваш сервер не является отдельной физической машиной, но реализован программно, разделяя один физический компьютер с рядом других таких же виртуальных выделенных серверов. Преимущества VDS: вместо тысяч рублей (аренда выделенного сервера) вы платите во много раз меньше и имеете полную свободу действий в ваших web-экспериментах.

Ограничения данной схемы: вы имеете в распоряжении не все ресурсы, имеющиеся в наличии, а только столько, сколько предусмотрено вашим тарифным планом. Если ваш проект потребует больше ресурсов, нужно подключить другой тарифный план. Делается это из панели управления.

Установка Django + WSGI

Наша цель — запустить джанго-проект на CentOS + Apache + MySQL + Django

WSGI (Web Server Gateway Interface) на данный момент является стандартом для запуска Django.

Для работы необходим ssh клиент. Я использую putty.
Также установите sftp клиент (ftp через ssh). Я использую WinSCP. Обычный FTP не позволяет входить с правами root.

Для работы будет полезен pip — менеджер пакетов Python.
Проверьте его наличие в системе командой Если pip не найден, установить его можно, выполнив следующие команды:

Установка Django

Установка mod_wsgi

Установка MySQLdb

Пример конфигурационного файла Apache для Django+WSGI

Не забывайте, что после любых изменений в конфигурационном файле и файлах django (кроме шаблонов) сервер необходимо перезагрузить.

Осталось набрать в браузере URL вашего сайта и посмотреть, что из всего этого получилось.

Если с первого раза не все идет гладко — не расстаивайтесь, внимательно пройдитесь по всем моментам процесса настройки и разберитесь, что вы пропустили. Зайдите по FTP и посмотрите, действительно ли все созданные вами папки находятся там, где им предполагается быть.
Я же благодарю всех, кто воспользовался вышеприведенными ссылками и желаю им удач во всех web-начинаниях!

Установка Django + modpython

Этот способ устарел и не применяется в современных системах.

Установка Subversion

Ставим из портов.
Порты freeBSD — это стандартный набор ПО, тестированного на данной ОС.
Установка из портов — самый быстрый и надежный способ. Отмечаем только эти 2 опции:
[X] MOD_DAV_SVN mod_dav_svn module for Apache 2.X
[X] NEON WebDAV/Delta-V repository access module

На втором появившемся экране настроек жмем «cancel».

Установка Django

Установка mysql-python

Отмечаем единственную опцию
[X] MYSQLCLIENT_R Use libmysqlclient_r (thread safe)

Установка mod_python


Создание папки для наших django проектов

Создаем symlink, чтобы иметь отсюда доступ к django: проверяем, доступен ли здесь django:

если сообщений об ошибке не появилось, выходим из коммандной оболочки python коммандой quit()

Если django недоступен, проверяем, имеется ли в папке django-apps ссылка django и действительно ли она ведет туда, куда мы ожидаем. Например, щелкните по ссылке в ftp — если появится ссобщение об ошибке («файл не найден»), это значит, что ссылка неверна. В WinSCP можно получить окно редактирования символической ссылки, выделив ее и нажав Alt+F6.

Создание django проекта

В эту папку мы переносим наши папки приложений, файлы urls.py, settings.py и т.д.

Чистый проект можно содать командой
Возможная ошибка: No module named django.core
Решение: возвращаемя к пункту «Если django недоступен»

Установка модулей Django

Установка memcached

Опцию REPCACHED не отмечаем

Установка python библиотеки для memcached

Настройка settings.py

Не забудьте, что данные доступа к БД на продакшн сервере скорее всего не такие, как на тестовом сервере.

После отладки проекта нужно будет отключить вывод подробных сообщений об ошибках:

Настройте пути к медиа файлам (своим и админки Джанго): Предполагается, что пути к медийным файлам (которые обрабатываются сервером, а не django), указаны в вашем коде как «/files/myimage.jpg», «/files/js/myscript.js» и т.п.

Теперь по URL
http://mydomain.ru/files/myimage.jpg или http://mydomain.ru/files/js/myscript.js сервер будет выдавать соответственно файлы
/home/myname/data/www/mydomain.ru/files/myimage.jpg,
/home/myname/data/www/mydomain.ru/files/js/myscript.js

Теперь нужно создать папку files /home/myname/data/www/mydomain.ru/files и положить туда по FTP свои файлы и папки.

Чтобы админка django нашла свои медийные файлы, нужно будет создать ссылку, связывающую путь /media в URL файлов с их реальным расположением в папке django:

Настройка httpd.conf

Рекомендую перед внесением изменений в httpd.conf сохранить его копию в тихом теплом месте. Если вы в нем допустите ошибку, Apache не будет работать и вам пригодится начальная копия для восстановления порядка.

Кстати, ISPmanager (панель управления) позволяет редактировать любые файлы, в том числе этот.

Развернуть Django проект (шаблон) на хостинге. Установка на хостинг django

: База знаний :: sprinthost

Django — бесплатный фреймворк для веб-приложений на языке Python.

По умолчанию сервер обрабатывает PHP-скрипты. Для запуска Python-приложений, выберите uWSGI в качестве веб-сервера для домена в разделе «Сайты и домены» → «Управление сайтами» Панели управления. Чтобы установить и настроить фреймворк, подключитесь к серверу по SSH.

В uWSGI уже включены основные модули, но для запуска Django требуются дополнительные. Чтобы устанавливать модули в рамках аккаунта, настройте виртуальное окружение для Python.

Создание и настройка виртуального окружения

Подключитесь по SSH и выполните команду:

]$ pip install virtualenv —user

Чтобы использовать внутри окружения модули, установленные на сервере, выполните команду:

]$ virtualenv —system-site-packages python

Активируйте виртуальное окружение:

Виртуальное окружение настроено.

Установка и настройка Django

Выполните команду pip для установки фреймворка:

]$ pip install Django

Теперь создайте проект на Django. Для этого перейдите в каталог домена (

/domains/domain.ru/), на котором будет использоваться фреймворк: (python) [[email protected]]$ cd domains/domain.ru/

И выполните команду:

(python) [[email protected] domain.ru]$ django-admin startproject myproject

В корневом каталоге сайта (python) [[email protected] domain.ru]$ cd public_html/ создайте файл входа в приложение — site.wsgi. Это можно сделать с помощью файлового менеджера в Панели управления или воспользовавшись текстовым редактором vim:

(python) [[email protected] public_html]$ vim site.wsgi Содержимое файла import os, sysvirtual_env = os.path.expanduser(‘/home/username/python’)activate_this = os.path.join(virtual_env, ‘bin/activate_this.py’)execfile(activate_this, dict(__file__=activate_this))sys.path.insert(0, os.path.join(‘/home/username/domains/domain.ru/myproject’))os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘myproject.settings’from django.core.wsgi import get_wsgi_applicationapplication = get_wsgi_application()

Замените username на логин вашего аккаунта, domain.ru — на доменное имя вашего сайта.

Настройте выполнение скриптов на Python, добавив правила в файл .htaccess:

DirectoryIndex site.wsgi index.htmlOptions +ExecCGIAddHandler wsgi-script .wsgiRewriteEngine onRewriteCond % !-fRewriteCond % !-dRewriteRule ^(.*)$ /site.wsgi/$1 [QSA,PT,L]

Укажите домен, по которому будет открываться сайт, в конфигурационном файле проекта. Для этого откройте файл settings.py, расположенный в каталоге

/domains/domain.ru/myproject/myproject/: (python) [[email protected] public_html]$ cd

/domains/domain.ru/myproject/myproject/ И добавьте доменное имя в строку ALLOWED_HOSTS:

Приступать к работе с фреймворком можно уже на этом этапе, однако большинству проектов нужна база данных. Настроим Django для работы с MySQL.

Подключение базы данных MySQL

По умолчанию модуль для работы с MySQL отсутствует. Для установки перейдите в домашний каталог аккаунта: (python) [[email protected]]$ cd

И выполните команду:

(python) [[email protected]]$ pip install mysqlclient

Чтобы применить изменения, перейдите в каталог

/domains/domain.ru/myproject/: (python) [[email protected]]$ cd domains/domain.ru/myproject/

(python) [[email protected] myproject]$ python manage.py migrate

Укажите данные для подключения к базе данных в конфигурационном файле (settings.py) в поле DATABASES:

Здесь username_db — название вашей базы данных, username_dbuser — имя пользователя базы данных, password — пароль.

Готово! Если все настроено верно, при переходе на сайт отобразится страница:

Теперь вы можете приступить к разработке своего сайта на Python с помощью Django.

Если у вас возникли сложности в процессе установки фреймворка, обратитесь в нашу службу поддержки.

Развернуть Django проект (шаблон) на хостинге | Django

1. Есть шаблон сайта, созданный с помощью Django [url removed, login to view]

2. Есть хостинг с поддержкой Django [url removed, login to view]

3. Есть домен, подключенный к хостингу.

Нужно: запустить шаблон сайта, чтобы он был полностью рабочий для полного ознакомления с его функционалом для возможной дальнейшей кастомизации.

Beceriler: Django, Python

Daha fazlasını gör: Python/Django, python django, https github com designativedave androrat, github python, django classifieds, classifieds django, net classifieds starter kit, django hosting cloud google, python net, asp net classifieds starter kit theme, asp net classifieds starter kit, activex hosting net cf, net dll configuration file com wrapper, image hosting net api, parse error net classifieds, hosting rapid classifieds

( 4 değerlendirme ) Kyiv, Ukraine

Proje NO: #6675586

python — Настройка сайта Django на общем хостинге

Как вы настраиваете сайт Django на общем хостинге? Я проверил установку django, и это нормально.

>>> import django >>> django.VERSION >>> (1, 4, 0, ‘final’, 0)


Я следил за http://www.djangobook.com/en/2.0/chapter12/ раздел Запуск Django в поставщике общего хостинга с Apache безрезультатно. В настоящее время сайт выглядит следующим образом

/home/django_projects/WebsiteName /sites/WebsiteName.co.id/www/.htaccess /sites/WebsiteName.co.id/www/dispatch.fcgi

Файл .htaccess похож на этот

AddHandler fastcgi-script .fcgi RewriteEngine On RewriteBase / RewriteRule ^(media/.*)$ $1 [QSA,L] RewriteRule ^(admin_media/.*)$ $1 [QSA,L] RewriteCond % !-f RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]

и dispatch.fcgi выглядит следующим образом

#!/usr/bin/python import sys, os sys.path = [‘$HOME/lib/python/Django-1.4’] + sys.path sys.path = [‘$HOME/django_projects’] + sys.path os.chdir(«$HOME/django_projects») #from flup.server.fcgi import WSGIServer from django.core.servers.fastcgi import runfastcgi os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘WebsiteName.settings’ runfastcgi([«method=threaded», «daemonize=false»])

Он продолжает генерировать ошибку 500, Внутренняя ошибка при доступе к веб-сайту. Я пробовал до сих пор,

[1] Changing AddHandler fastcgi-script .fcgi to AddHandler fcgid-script .fcgi [2] Removing AddHandler fastcgi-script .fcgi [3] Putting the website directory to /sites/WebsiteName.co.id/www/WebsiteName instead of /home/django_projects/WebsiteName/ [4] Do no. 3 and move dispatch.fcgi to /sites/WebsiteName.co.id/www/WebsiteName

Прошу прощения, если этот вопрос настолько глуп. Я новичок в Django. Btw, нет 1-4 не в порядке. Это просто, чтобы указать, что я пробовал до сих пор. Также, если я этого не сделаю. 4, на веб-сайте отображается содержимое dispatch.fcgi.

Развернуть Django проект (шаблон) на хостинге | Django

1. Есть шаблон сайта, созданный с помощью Django [url removed, login to view]

2. Есть хостинг с поддержкой Django [url removed, login to view]

3. Есть домен, подключенный к хостингу.

Нужно: запустить шаблон сайта, чтобы он был полностью рабочий для полного ознакомления с его функционалом для возможной дальнейшей кастомизации.

Taidot: Django, Python

Näytä lisää: Python/Django, python django, https github com designativedave androrat, github python, django classifieds, classifieds django, net classifieds starter kit, django hosting cloud google, python net, asp net classifieds starter kit theme, asp net classifieds starter kit, activex hosting net cf, net dll configuration file com wrapper, image hosting net api, parse error net classifieds, hosting rapid classifieds

( 4 arvostelua ) Kyiv, Ukraine

Projektin tunnus: #6675586

Развернуть Django проект (шаблон) на хостинге | Django

1. Есть шаблон сайта, созданный с помощью Django [url removed, login to view]

2. Есть хостинг с поддержкой Django [url removed, login to view]

3. Есть домен, подключенный к хостингу.

Нужно: запустить шаблон сайта, чтобы он был полностью рабочий для полного ознакомления с его функционалом для возможной дальнейшей кастомизации.

Skills: Django, Python

See more: Python/Django, python django, https github com designativedave androrat, github python, django classifieds, classifieds django, net classifieds starter kit, django hosting cloud google, python net, asp net classifieds starter kit theme, asp net classifieds starter kit, activex hosting net cf, net dll configuration file com wrapper, image hosting net api, parse error net classifieds, hosting rapid classifieds

( 4 reviews ) Kyiv, Ukraine

Project ID: #6675586

Развернуть Django проект (шаблон) на хостинге | Django

1. Есть шаблон сайта, созданный с помощью Django [url removed, login to view]

2. Есть хостинг с поддержкой Django [url removed, login to view]

3. Есть домен, подключенный к хостингу.

Нужно: запустить шаблон сайта, чтобы он был полностью рабочий для полного ознакомления с его функционалом для возможной дальнейшей кастомизации.

Aftësitë: Django, Python

Shiko më shumë: Python/Django, python django, https github com designativedave androrat, github python, django classifieds, classifieds django, net classifieds starter kit, django hosting cloud google, python net, asp net classifieds starter kit theme, asp net classifieds starter kit, activex hosting net cf, net dll configuration file com wrapper, image hosting net api, parse error net classifieds, hosting rapid classifieds

( 4 përshtypje ) Kyiv, Ukraine

ID Projekti: #6675586

Развернуть Django проект (шаблон) на хостинге | Django

1. Есть шаблон сайта, созданный с помощью Django [url removed, login to view]

2. Есть хостинг с поддержкой Django [url removed, login to view]

3. Есть домен, подключенный к хостингу.

Нужно: запустить шаблон сайта, чтобы он был полностью рабочий для полного ознакомления с его функционалом для возможной дальнейшей кастомизации.

Skills: Django, Python

See more: Python/Django, python django, https github com designativedave androrat, github python, django classifieds, classifieds django, net classifieds starter kit, django hosting cloud google, python net, asp net classifieds starter kit theme, asp net classifieds starter kit, activex hosting net cf, net dll configuration file com wrapper, image hosting net api, parse error net classifieds, hosting rapid classifieds

Hosting — Как Django сайт загрузить на хостинг?

На хостинге доступен python2.6 и Django 1.1.1.

Использоваться будет Apache + FastCGI (http://docs.djangoproject.com/en/dev. yment/fastcgi/) (также, при желании, можно настроить nginx + fastcgi).

Порядок установки:
1) заходим в панель управления хостингом в раздел «Веб-сервер»\»Управление модулями»
2) включаем модули mod_fastcgi и mod_rewrite.
Отключаем модуль PHP, если его использование не планируется.

3) создаём директорию для проектов:

python -W ignore::DeprecationWarning ./manage.py runserver 123.45.67.89:8000

Узнать IP-адрес сервера можно в конфигах, либо такой командой:
$ cat $HOME/etc/httpd.conf.auto | grep ‘ServerName’ |sed ‘s/ServerName\ /»/g’
123.45.67.89

python -W ignore::DeprecationWarning

/django/project/manage.py runfcgi method=prefork maxrequests=1000 maxspare=3 minspare=2 maxchildren=3 daemonize=true socket=/tmp/project.sock p >

/etc/rc.d/fastcgi_project.sh
chmod u+x

/etc/rc.d/fastcgi_project.sh добавляем следующие данные (сохранять следует с переводом строки CR(Unix))
— можно отредактировать с помощью редактора mc:

FastCGIExternalServer sitename.ru/docs/index.fcgi -socket /tmp/project.sock

— в конце файла конфигурации обязательно добавляем пустую строку
— сохраняем

9) настраиваем sitename.ru:
— в директории сайта sitename.ru/docs создаём файл .htaccess со следующим содержимым:

Меню пользователя Артем Юров
Посмотреть профиль
Найти ещё сообщения от Артем Юров
10.12.2009, 10:48 #2
Меню пользователя Anatoly Popov
Посмотреть профиль
Отправить личное сообщение для Anatoly Popov
Найти ещё сообщения от Anatoly Popov
11.12.2009, 16:11 #3
Меню пользователя Артем Юров
Посмотреть профиль
Найти ещё сообщения от Артем Юров

Прекрасная статья, спасибо Артем!
Очень помогла мне перенести к вам сайт сегодня без проблем)

Кстати, а вот на будущее, я думаю. Если понадобится поставить какие-то модули к питону?

И еще. Если было бы можно у вас использовать систему контроля версий GIT — точно бы переехал к вам с доброй половиной моих django приложений.

06.03.2010, 22:12 #4
Меню пользователя Applecat
Посмотреть профиль
Отправить личное сообщение для Applecat
Найти ещё сообщения от Applecat

/.pydistutils.cfg со следующим содержимым:

/.bashrc со следующим содержимым:

07.03.2010, 21:23 #5
Меню пользователя Артем Юров
Посмотреть профиль
Найти ещё сообщения от Артем Юров
11.09.2010, 12:26 #6
Меню пользователя Anatoly Popov
Посмотреть профиль
Отправить личное сообщение для Anatoly Popov
Найти ещё сообщения от Anatoly Popov


При запуске сервера возникает ошибка:

19.09.2010, 11:28 #7
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein
19.09.2010, 20:34 #8
Меню пользователя Godzilla
Посмотреть профиль
Найти ещё сообщения от Godzilla
20.09.2010, 09:00 #9
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein
20.09.2010, 09:12 #10
Меню пользователя savel
Посмотреть профиль
Отправить личное сообщение для savel
Посетить домашнюю страницу savel
Найти ещё сообщения от savel

Был произведён эксперимент, в ходе которого пустой проект с набором модулей, аналогичным тем, что установлены на Вашей услуге хостинга, на той же хост-машине успешно запустился.

Предположительно, причина неработоспособности кроется в самих размещённых Вами на хостинге файлах проекта.

Более подробные рекомендации Вам даны в ответном письме.

20.09.2010, 15:10 #11
Меню пользователя Станислав Муравьев
Посмотреть профиль
Найти ещё сообщения от Станислав Муравьев
20.09.2010, 20:44 #12
Был произведён эксперимент, в ходе которого пустой проект с набором модулей, аналогичным тем, что установлены на Вашей услуге хостинга, на той же хост-машине успешно запустился.

Предположительно, причина неработоспособности кроется в самих размещённых Вами на хостинге файлах проекта.

Более подробные рекомендации Вам даны в ответном письме.

Меню пользователя Godzilla
Посмотреть профиль
Найти ещё сообщения от Godzilla

Спасибо за ответ, анализ был проведен, так же было опробовано следующее: отключил все модули, что были мной написаны, все равно выдавало такую же ошибку.

с утра начал делать немного по другому, сначала создал все модули через manage.py вручную. После создания скопировал уже написанный код в новый проект. Дальше строчка за строчкой правил сеттинги к тому формату что у меня в файле..

и что интересно — заработало. ничего лишнего в коде не правил — не добавлял.

перехожу к настройке апача, глянем как дальше пойдет..

21.09.2010, 08:41 #13
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein

Сайт поднялся, однако:

Возникла следующая проблема.
Отправка сообщений ни в какую не желает отправляться

отчего же такой запрет?

при этом с этого адреса разрешено отправлять сообщения в панели управления, но что-то мне подсказывает что далеко не адрес там подставляется.

21.09.2010, 09:54 #14
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein
21.09.2010, 10:58 #15
Меню пользователя Станислав Муравьев
Посмотреть профиль
Найти ещё сообщения от Станислав Муравьев

Стандартная функция Django:

send_mail(u»Сообщение с сайта», m.message, ‘тут@мыло от’, [‘тут@мыло кому’], fail_silently=False)

дополнительно ничего не настраивал, видимо берется по умолчанию значения.

чуть читанул, пошел переделывать скрипт для отправки через сендмайл, поглядим что получиться

21.09.2010, 11:19 #16
Меню пользователя Alvein
Посмотреть профиль
Отправить личное сообщение для Alvein
Найти ещё сообщения от Alvein

Все, сделал принудительную отправку через sendmail, по примерной инструкции:

Django — быстрый старт (поддерживаемая версия)

Материал из 1GbWiki.

Статья объясняет, как разместить на хостинге 1Gb.ru сайт на Django. Процесс установки можно разделить на две части: подготовка окружения для запуска фреймворка и настройка фреймворка.

Содержание

[править] Подготовка окружения

1. В личном кабинете, в разделе Услуги хостинга HTTP служб включите поддержку Django для сайта:

2. Зайдите на сервер по SSH и запустите команду:

2.1. Укажите нужную версию Python (по умолчанию ставится stable версия из ветки 3.x):

Установка занимает несколько минут.

2.2. Далее команда спросит имя папки куда будет установлен пакет virtualenv. Этот параметр не принципиален, поэтому можно оставить значение по умолчанию, то есть просто нажать ENTER

Результатом работы команды 1gb_virtenv_install.sh будет установленный в папку

/local Python и пакет virtualenv, а также виртуальное окружение из которого будет запускаться Django.

3. Все последующие команды будут выполняться из виртуального окружения. Для активации окружения выполните команду:

4. Устанавливаем web-сервер

[править] Настройка Django

[править] Перенос существующего сайта

1. В домашнем каталоге создайте папку, где будет размещен ваш проект. Например, djangosite

2. Добавьте имя проекта в конфигурационный файл:

3. Загрузите свой проект в папку djangosite, непосредственно в данном каталоге у вас окажется файл управления фреймворком manage.py, то есть структура будет такой:

4. Установите зависимости:

5. Среда хостинга настроена таким образом, что статические документы вашего проекта будут доступны из каталогов:

поэтому вы можете создать симлинки из каталога

/http/ в то место, где они лежат у вас в проекте. Также можно просто создать эти каталоги и использовать их для деплоя статики из приложения. Подробнее об этом тут https://docs.djangoproject.com/en/1.9/howto/static-files/

6. Запустите web-сервер:

[править] Создание нового проекта

1. Ставим Django:

2. Создание проекта:

3. Добавьте имя проекта в конфигурационный файл:

4. Запустите web-сервер:

[править] Решение проблем

1. Как перезапустить сервер?

2. Где посмотреть ошибки работы приложения?

Цукерберг рекомендует:  C++ - Возвращение функции bool и использование его в main()
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих
21.09.2010, 11:34 #17