Внедряване на django проект до ключ (linux apache mysql django)

Занимавах се с щамповане на django сайтове и затова имаше нужда от максимална автоматизация на различни процеси, свързани с разработването, внедряването и поддръжката на проекти, в резултат на което разработих няколко решения. Един от тях, който ще споделя в тази статия, е скрипт за внедряване на проект на празна debian машина, с което внедряването стана лесно и лесно. Под изрезката ще намерите инструкции как да разположите django приложение за 10 минути, от които 5 ще отнеме четене на статията и още 5 - самото нещо. Методът е подходящ за начинаещи, които нямат никакви познания по администрация. За да качите проект, трябва да го подготвите, да закупите сървър, да го разположите и да тествате всичко.
1. Подготовка на проекта:
Ако нямате проект като такъв, можете да пропуснете тази стъпка. Моят скрипт по подразбиране ще изтегли празен django проект от моя github.
Ако проектът вече съществува:
- Трябва да качите проекта в git хранилището или да промените скрипта с код, който ще изтегли проекта от правилното място (wget, например).
- В основата на проекта трябва да има файл с изисквания с всички зависимости на pip. Отбелязвам, че трябва да има пакетни версии.
- Трябва да има правилен файл wsgi.py в основата (по подразбиране, в най-новите версии на django, той се намира в projectname/, така че трябва да бъде преместен от там в ../)
- По избор може да има и файл с apt-зависимости, наречен apt-requirements.
- Файл с правилни настройки. Ще използваме MySQL като база данни по подразбиране, така че полето ENGINE трябва да бъде зададено на „django.db.backends.mysql“.
2. Подготовка за хостинг:
Можете да изберете всеки хостинг с дистрибуция на debian, основното е да имате root права. Ще ви преведа през стъпките как да настроите VDS на FirstVDS. За да започнете, можете да изберете специална тестова тарифа VDS-Warm-up за 60 рубли на месец или VDS-Start за 200 рубли. Имах около 20 средни клиентски сайта на един сървър (тарифа за ускорение, 350 рубли), всичко работеше правилно.
Скриптът се съхранява в gist, така че го изтегляме и изпълняваме командите:
След това виждаме файла django_deploy_script.sh в началната директория със съдържанието:
Ако е необходимо, редактирайте го: поставете необходимите аргументи в началото. Но можете да оставите всичко както е за теста. И изпълнение на файла:
Можете да изберете елемент от менюто 7, след което всичко ще бъде инсталирано до ключ или да преминете последователно от 1 до 6.
Когато скриптът завърши, отиваме на сървъра чрез ip и оценяваме резултата.
Заключение.Когато за първи път започнах да правя django сайтове, внедряването на проекти ми отне толкова време, колкото времето за разработка. Всичко се промени с опита. През годините разработих конвейер, който ви позволява бързо да създавате сайтове и бързо да ги внедрявате. Има подобен скрипт за внедряване в nginx, ако е необходимо, ще го публикувам. Направих това: имах собствен сървър на nginx, имаше много сайтове със собствени виртуални среди. Преди да го поставя на отделен сървър с клиент, хоствах и дебъгвах сайта при мен, а след плащане го прехвърлих на отделен хостинг.
Благодаря за вниманието! Надявам се това ръководство да е полезно за някого.