Дјанго

Креирање Дјанго апликације на Убунту серверу

Креирање Дјанго апликације на Убунту серверу
Дјанго је уобичајена платформа за развој веб локација, веб апликација и веб АПИ-ја. Много је предности коришћења Дјанго оквира за ваш пројекат као свог алата, а ако нисте сигурни да ли се правилно уклапа, потребно је само да се обратите многим великим брендовима који користе Дјанго у њиховој хрпи.

Постављање Дјанга у производно окружење по први пут може бити застрашујући задатак. Програмери ће често покренути инстанцу Линука у облаку за своје производно окружење.

У овом упутству ћемо вам показати како покренути Дјанго у производњи, користећи нову инстанцу Убунту-а.

Претпоставићемо да се сва ваша уређивање врши на серверу и да команде извршавате као роот.

За ово упутство користимо Убунту 18.04.2 ЛТС

Креирање корисника за пројекат

Направићемо новог корисника, дјанго, за покретање наше апликације. Ово пружа малу безбедносну корист.

Да бисте креирали новог корисника:

усерадд -м дјанго

Тхе -м застава креира нови кућни директоријум: / хоме / дјанго.

Постављање Питхон окружења

Прво најпре: ажурирајте листе пакета помоћу апт-гет упдате

Убунту 18.04 испоручује се са Питхон-ом 3.6, али се не испоручује са пипом, који ће вам требати да бисте инсталирали зависности.

апт-гет инсталирање питхон3-пип

Сад кад имамо пип, створимо виртуелно окружење. Виртуелна окружења помажу у избегавању сукоба са Питхон пакетима које користи Линук.

пип3 инсталирати виртуаленв
цд / хоме / дјанго
виртуаленв енв

Сада сте креирали виртуелни Питхон 3.6 окружење у / хоме / дјанго / енв директоријум који се може активирати следећом командом: Сада када имамо пип, креирајмо виртуелно окружење. Виртуелна окружења помажу у избегавању сукоба са Питхон пакетима које користи Линук.

соурце / хоме / дјанго / енв / бин / ацтивате

Постављање пројекта Дјанго

За ово упутство ћемо створити привремени Дјанго пројекат. Ако постављате свој код, мораћете да га отпремите на сервер. Ми ћемо радити у матичном директоријуму, / хоме / дјанго.Постављање пројекта Дјанго

Креирајмо пројекат Дјанго:

цд / хоме / дјанго
извор енв / бин / ацтивате
пип инсталл дјанго
дјанго-админ туториал за стартпројецт

Потврдите да ствари функционишу покретањем:

ЦД туториал
питхон управљати.пи рунсервер 0.0.0.0:80

Наша инстанца Убунту-а ради на 178.128.229.34, па ћемо се повезати на хттп: // 178.128.229.34.Потврдите да ствари функционишу покретањем:

Вероватно ћете видети нешто овако:

Да бисмо то поправили, уредићемо / хоме / дјанго / туториал / туториал / сеттингс.пи. Пронађи АЛЛОВЕД_ХОСТС = [] и подесите га на:

АЛЛОВЕД_ХОСТС = [
'178.128.229.34 '# замените ово ИП адресом вашег сервера
или име домена које користите за повезивање
]

Сада се вратимо на хттп: // 178.128.229.34:

Велики! На мрежи смо!

Постављање ПостгреСКЛ-а, базе података

Дјанго подразумевано користи СКЛите3 базу података. Нажалост, СКЛите3 не дозвољава истовремено уписивање. Ако ваша веб локација икада има само једног корисника који уређује податке, а остатак посетилаца само чита странице, онда би ово могло бити прикладно. Али ако више људи истовремено уређује податке, вероватно желите да користите другу позадину.

Уобичајени избор су ПостгреСКЛ и Мискл. За овај водич идемо са ПостгреСКЛ-ом.

Почните инсталирањем ПостгреСКЛ:

апт-гет инсталација постгрескл

Затим покрените пскл, љуску базе података. Подразумевано је само постгрес корисник у могућности да се повеже са базом података, па ћемо прво морати да се потврдимо као тај корисник:

су - постгрес
пскл

Даље, потребна нам је база података и корисник за приступ тој бази података:

креирајте туторијал базе података;
креирајте корисника туториал_усер са шифрованом лозинком 'туториал_пассворд';
доделити све привилегије на туториалу базе података туториал_усер;

Сада откуцајте екит или притисните Цтрл-Д два пута: једном да изађете из пскл, а једном да се одјавите из љуске постгресусера.

Велики! Сада смо поставили базу података и корисника. Проверимо да ли се можемо пријавити у нашу базу података.

Покушаћемо да отворимо љуску базе података, овог пута пријављивањем у базу података коју смо креирали са корисником којег смо креирали:

пскл -Утуториал_усер -дтуториал -х127.0.0.1 -В

На упит унесите лозинку коју смо креирали: туториал_пассворд.

Ако видите љуску базе података, били сте успешни. Ако видите било какве грешке, мораћете да се вратите и схватите шта није у реду.

Повезивање Дјанго-а са базом података

Да бисмо Дјанго повезали са базом података, прво морамо да инсталирамо Питхон ПостгреСКЛ адаптер:

пип инсталирајте псицопг2-бинарни

Онда, отворимо / хоме / дјанго / туториал / туториал / сеттингс.пии конфигуришите везу.

Пронађите вашу тренутну везу са базом података; да га нисте модификовали, то би могло изгледати отприлике овако:

БАЗЕ БАЗА =
'Уобичајено':
'ЕНГИНЕ': 'дјанго.дб.бацкендс.склите3 ',
„ИМЕ“: ос.пут.придружи се (БАСЕ_ДИР, 'дб.склите3 '),

Да бисмо се повезали са ПостгреСКЛ-ом, заменићемо га следећим:

БАЗЕ БАЗА =
'Уобичајено':
'ЕНГИНЕ': 'дјанго.дб.бацкендс.постгрескл_псицопг2 ',
'НАМЕ': 'водич',
'УСЕР': 'туториал_усер',
'ПАССВОРД': 'туториал_пассворд',
'ХОСТ': '127.0.0.1 ',
'ЛУКА': '5432',

Тестирајмо везу:

цд / хоме / дјанго / туториал
питхон управљати.пи рунсервер 0.0.0.0:80

Поново бисте могли да посетите своју веб страницу (за нас на хттп: // 178.128.229.34 /, али замените то својим ИП-ом или именом хоста).

Ако је све у реду, можемо да наставимо.

Постављање нгинка, веб сервера

Кад трчиш питхон управљати.пи рунсервер, користите Дјангов развојни сервер. Ово је сјајно за локални развој, али као и код СКЛите3, није баш погодно за производњу.

Уобичајени избор за производне веб сервере су нгинк и Апацхе. За овај водич користићемо нгинк.

Инсталирајте нгинк користећи следеће:

апт-гет инсталирајте нгинк

Ако је све функционисало добро, нгинк би требало да ради на порту 80. Само напред и погледајте своју веб страницу; требало би да видите:

Одлично, тако да је нгинк покренут и покренут! Даље ћемо га морати конфигурисати за комуникацију са Дјанго-ом. Отворите датотеку за конфигурацију нгинк која се налази на / етц / нгинк / ситес-аваилабле / дефаулт. Заменимо датотеку следећим:

узводно дјанго
сервер 127.0.0.1: 8000;

сервер
слушај 80;
локација /
три_филес $ ури @сенд_то_дјанго;

локација @сенд_то_дјанго
проки_сет_хеадер Хост $ хттп_хост;
проки_редирецт офф;
проки_пасс хттп: // дјанго;

Тестирајте конфигурациону датотеку покретањем нгинк -т. Ако је све у реду, можемо се поново учитати покретањем нгинк -с релоад.

Ако посетите своју страницу, видећете следеће:

Кад год видите ово, то значи да нгинк није могао да проследи захтев узлазном процесу. Тренутно је то зато што покушава да проследи захтев 127.0.0.1: 8000, али на тој адреси нема процеса преслушавања.

Покренимо Дјанго развојни сервер и покушајте поново:

цд / хоме / дјанго / туториал
питхон управљати.пи рунсервер 127.0.0.1: 8000

и поново посетите своју веб страницу. Требали бисте видети своју апликацију Дјанго.

Монтирање Дјанга на Гуницорн

Запамтите, не желимо да користимо наш Дјанго развојни сервер у производњи. Уместо тога, користићемо сервер Веб Сервер Гатеваи Интерфаце (ВСГИ) за покретање Дјанго-а. Нгинк ће проследити захтев ВСГИ серверу који ради на Дјанго-у.

Уобичајени избор за ВСГИ сервер су Гуницорн и уВСГИ. За овај водич користићемо Гуницорн.

Инсталирајмо Гуницорн:

пип инсталирај гуницорн

Даље, гуницорн можемо започети на следећи начин:

цд / хоме / дјанго / туториал
туторијал за гуницорн.всги

Сада бисте могли да посетите своју веб страницу и видите како ваша апликација правилно ради.

Покретање Гуницорн-а као услуге

Постоји неколико проблема са оваквим трчањем гуницорн-а:

  1. Ако затворимо сесију ССХ, процес оружарства ће се зауставити.
  2. Ако се сервер поново покрене, процес гуницорн неће започети.
  3. Процес се изводи као роот. Ако хакери пронађу екплоит у коду наше апликације, моћи ће да извршавају команде као роот. Не желимо ово; али зато смо створили дјангоусер!

Да бисмо решили ове проблеме, покренућемо Гуницорн као системску услугу.

цд / хоме / дјанго
мкдир бин
цд / хоме / дјанго / бин
додирни старт-сервер.сх

У старт-серверу.сх:

цд / хоме / дјанго
извор енв / бин / ацтивате
ЦД туториал
туторијал за гуницорн.всги

Сада можете тестирати скрипту:

цд / хоме / дјанго / бин
басх старт-сервер.сх
# посетите своју веб страницу, требало би да ради

Сада креирамо системску услугу за Гуницорн. Направите / етц / системд / систем / гуницорн.сервицеас следи:

[Јединица]
Опис = Гуницорн
После = мрежа.мета
[Услуга]
Тип = једноставно
Корисник = дјанго
ЕкецСтарт = / хоме / дјанго / бин / старт-сервер.сх
Рестарт = након неуспеха
[Инсталирај]
ВантедБи = вишекориснички.мета

Сада, омогућимо услугу и покренимо је

системцтл омогући гуницорн
системцтл старт гуницорн

Тренутно бисте могли да видите своју веб страницу.

Гуицорн можемо искључити на следећи начин:

системцтл стоп гуницорн

И требало би да видите 502 Бад Гатеваи.

На крају, проверимо циклус покретања:

системцтл старт гуницорн
рестарт сада

Када се ваша машина поново повеже са мрежом, требало би да видите да је веб локација подигнута.

Статичке датотеке

Ако посетите администраторску таблу Дјанго на својој веб локацији на адреси / админ / (за нас је то хттп: // 178.128.229.34 / админ /), приметићете да се статичке датотеке не учитавају правилно.

Морамо да креирамо нову фасциклу за статичке датотеке:

цд / хоме / дјанго
мкдир статиц

Затим кажемо Дјанго-у да ту треба да стави статичке датотеке уређивањем / хоме / дјанго / туториал / туториал / сеттингс.пи, и додајући:

СТАТИЦ_РООТ = '/ хоме / дјанго / статиц /'

Сада можемо прикупити статичке датотеке:

цд / хоме / дјанго
извор енв / бин / ацтивате
ЦД туториал
питхон управљати.пи цоллестастатиц

На крају, морамо рећи нгинк-у да служи те статичне датотеке.

Отворимо / етц / нгинк / ситес-аваилабле / дефаулт и додајте следеће директно изнад ваше локације / блока:

локација / статична /
роот / хоме / дјанго;
три_филес $ ури = 404;

Читава датотека би сада требала изгледати овако:

узводно дјанго
сервер 127.0.0.1: 8000;

сервер
слушај 80;
локација / статична /
роот / хоме / дјанго;
три_филес $ ури = 404;

локација /
три_филес $ ури @сенд_то_дјанго;

локација @сенд_то_дјанго
проки_сет_хеадер Хост $ хттп_хост;
проки_редирецт офф;
проки_пасс хттп: // дјанго;

Датотеку можемо поново учитати помоћу поновног учитавања нгинк -с

И воила! Ваше статичне датотеке ће сада радити у потпуности.

Закључак

У овом тренутку ваша апликација Дјанго исправно ради. Ако имате неке посебне захтеве, можда ћете морати да подесите кеш меморију као што је Редис или ред порука попут Раббит МК. Можда ћете желети да поставите континуирано постављање, јер поступак постављања може потрајати.

Следећи важан корак је предузимање одговарајућих корака за заштиту ваше Убунту машине. У супротном, можда ћете видети да се сервер лоше понаша!

Срећно!

Како променити поставке миша и додирне табле помоћу Ксинпут-а у Линук-у
Већина Линук дистрибуција подразумевано испоручује библиотеку „либинпут“ за обраду улазних догађаја на систему. Може да обрађује улазне догађаје и на ...
Замените тастере миша другачије за различити софтвер помоћу Кс-Моусе Буттон Цонтрол
Можда вам је потребан алат који би могао да промени контролу миша са сваком апликацијом коју користите. Ако је то случај, можете испробати апликацију ...
Преглед бежичног миша Мицрософт Сцулпт Тоуцх
Недавно сам читао о Мицрософт Сцулпт Тоуцх бежични миш и одлучио да га купи. Након што сам га неко време користио, одлучио сам да са њим поделим своје...