Ungasifaka kanjani isicelo se-Django:

Kuthiwani mayelana nokubingelela kuwo wonke umuntu, lesi isihloko sami sokuqala ku-<» FromLinux (kwezimbalwa enginazo kokusalungiswa kwami ​​xD), ngethemba ukuthi iwusizo kuwena 

Yebo, emsebenzini wami omusha nowamanje, okwamanje ukuthuthela kwezinhlelo eziningana eDjango kuyenziwa (kumangaza kanjani i-eh? XD) futhi omunye wemisebenzi yami, ngaphandle kwentuthuko, ukufaka lokhu ekukhiqizeni, ngakho-ke kuhle kangakanani ukufundela umsebenzi, ngoba bekungokokuqala ngqa ukufaka uhlelo lokusebenza ekukhiqizeni kuseva yangempela: $ Ngaqala ukufunda idokhumende elisemthethweni ngalinye lamaphakeji adingekayo esitaki (iGunicorn neSupervisord ngaphezu kwakho konke), futhi ngibona ukuthi okokufundisa ku NgeSpanish bebengangicaceli kahle kwezinye izici, nginqume ukudala umhlahlandlela omncane ngezinyathelo engizilandele ukufaka uhlelo ekukhiqizeni, ngokususelwa ku-Django, Gunicorn, Supervisord, Nginx nasePostgresql.

Endabeni lapho ngisebenza khona, amaseva asasebenza i-Debian Squeeze, kepha umhlahlandlela kufanele uvumeleke ngokuphelele kokunye ukwabiwa ... ngakho-ke ake siqonde ngqo ephuzwini bese siqala:

Ngizosebenza njengomsebenzisi omkhulu. Okokuqala, amaphakheji alandelayo ayadingeka:

I-PIP -> Ithuluzi lokufaka nokuphatha amaphakheji wePython
aptitude install python-pip

Nginx -> Iseva yeWebhu (sizoyisebenzisa njengommeleli obuyela emuva futhi silondoloze amafayili we-static 'img, js, css') Siyifaka nge:
aptitude install nginx

I-Supervisord -> Isicelo sokuphatha nokuqapha uhlelo lwethu lokusebenza, noma ngabe sisetshenziselwa okuningi. Siyifaka nge:
aptitude install supervisor

Ubuhle -> Kuyasisiza ukudala indawo enziwe ngokwezifiso yokubulawa kwesicelo sethu. Siyifaka nge:
aptitude install python-virtualenv

I-Gunicorn -> Iseva yewebhu ye-Python (ngeke sikufake lokhu okwamanje)

Ngicabanga ukuthi kufanele ngabe sebene-postgresql efakiwe futhi elungiselelwe

psycopg2 -> Isixhumi se-PostgreSQL se-Python (ngeke sisifake okwamanje)

Dala imvelo ebonakalayo nge-ubuhle:

Okokuqala sizothuthela enkombeni yokusebenza esizoyisebenzisa ukwenza umkhiqizo:
cd /var/www/

Ngemuva kwalokho kulo mkhombandlela sizokwakha indawo ebonakalayo:
virtualenv ENV-nombreApp

Sihambisa umkhombandlela engisanda kuwakha ubuhle
cd ENV-nombreAPP

Sikopisha uhlelo lokusebenza kulolu hlu lwemibhalo futhi manje siqhubeka nokwenza kusebenze imvelo nge:
source bin/activate

I-Prompt manje kufanele ibukeke (ENV)usuario@host:

Lokhu kuzoqinisekisa ukuthi konke esikwenzayo manje kugcinwa kufolda ethi /var/www/ENV-appname/ ngaphandle kokuthinta amaphakheji esistimu.

Manje sithuthela kumkhombandlela wohlelo lokusebenza:
cd nombreApp

Siqhubeka ukufaka uhlu lokuncika kohlelo lokusebenza (uma kunesidingo), lapho kucaciswe khona kufayela izidingo.txt:
pip install -r requirements.txt

Futhi singafaka amaphakheji ngawodwana, ngokwesibonelo, ukufaka isixhumi se- postgresql:
pip install psycopg2

Ukufakwa nokulungiswa kwe-GUnicorn:

Ukuyifaka sikwenza ngendlela efanayo:
pip install gunicorn

Manje ake siyilungiselele. Ukuze senze lokhu, sizodala ifayela elibizwa ngokuthi i-gunicorn-deploy.py empandeni yohlelo lwethu lokusebenza (yize igama lingaba yinoma yini) ngokuqukethwe okulandelayo:

bind = "127.0.0.1:8001" # dirección a donde accederá Nginx
logfile = "/var/www/logs/nombreApp/gunicorn.log" # dirección donde estarán los logs de la aplicación
workers = 1 # dependerá en medida de la carga de trabajo que tenga la aplicación, también depende del hardware con que se cuente
loglevel = 'info' # tipo de logging

Ukumiswa kwe-Supervisord:

Manje ake silungiselele i- supervisord ; ngalokho, sikhiqiza ifayela lokucushwa nge

echo_supervisord_conf > /etc/supervisord.conf

Manje sihlela ifayela lokumisa:
vim /etc/supervisord.conf

Futhi asinqamuli imigqa elandelayo ngokususa; (isemikholoni):

[unix_http_server] file = / tmp / supervisor.sock [supervisord] logfile = / var / log / supervisord.log logfile_maxbytes = 50MB logfile_backups = 10 loglevel = debug pidfile = / var / run / supervisord.pid nodaemon = amanga minfds = 1024 min = 200 [rpcinterface: supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface: make_main_rpcinterface [supervisorctl] serverurl = unix: [program: appname] command = / var / www / ENV-appname / bin / django_unicorn -c / var / www / ENV -Appname / appname / gunicorn-deploy.py directory = / var / www / ENV-appname / appname / autostart = i-autorestart yangempela = umsebenzisi weqiniso = Igama lomsebenzisi redirect_stderr = true stdout_logfile = / var / www / logs / appname / supervisord.log

Manje sizokwenzela iskripthi sokuthi umphathi aqale ngohlelo, ngalokho sizokwakha ifayili:
vim /etc/init.d/supervisord

Futhi sengeza okuqukethwe okulandelayo:

 # Supervisord auto-start # # incazelo: Auto-starts supervisord # processname: supervisord # pidfile: /var/run/supervisord.pid SUPERVISORD = / usr / local / bin / supervisord SUPERVISORCTL = / usr / local / bin / supervisorctl case $ 1 ekuqaleni) echo -n "Umphathi oqala:" $ SUPERVISORD echo ;; misa) echo -n "Ukumisa umphathi:" $ SUPERVISORCTL shutdown echo ;; qala kabusha) echo -n "Ukumisa umphathi:" $ SUPERVISORCTL shutdown echo echo -n "Ukuqala umphathi:" $ SUPERVISORD echo ;; ukuthi uC

Futhi manje sinikeza ukwenza izimvume kufayela ukuze liqale ngohlelo:
sudo chmod +x /etc/init.d/supervisord

Sibuyekeza izixhumanisi ukuqala insiza:
sudo update-rc.d supervisord defaults

Siqala isevisi:
sudo /etc/init.d/supervisord start

Ukusetha i-nginx:

Lesi sinyathelo silula kakhulu; sizodala ifayela elilandelayo lokucushwa kwe -nginx lohlelo lwethu lokusebenza:

vim /etc/nginx/sites-enabled/nombreApp

Futhi sizokwengeza okuqukethwe okulandelayo kuwe

iseva {lalela 9001; # port lapho befuna i-nginx ukulalela i-server_name www.domain.com; # noma 192.168.0.100, ikheli esizofinyelela kulo ukufinyelela_log /var/log/nginx/Appname.access.log; # lapho sizoba nendawo yokungena yohlelo lokusebenza / {# lapho i-nginx izoshayela lapho ifinyelela ku-www.dominio.com/ proxy_pass http: // 127.0.0.1: 8001; ummeleli we-proxy_set_header $ http_host; } indawo / i-static / {# lapho i-nginx izongena khona lapho singena ku-www.dominio.com/static/ alias / var / www / ENV-appname / appname / staticfiles /; }}

Futhi siqala kabusha i-nginx:
service nginx restart

Ukusetha i-Django:

Masiguqule ifayela lokumiswa le-django:
vim nombreApp/settings.py

Sifuna umugqa othi DEBUG = True bese sishintsha inani lawo , sishiye u-DEBUG = False

Sifaka amapharamitha we-DB:

I-DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2', # noma i-mysql, noma yini abayisebenzisayo 'IGAMA': 'DBName', 'USER': 'DBUser', 'PASSWORD' : 'password DB', 'HOST': 'localhost', # noma leyo abayidingayo 'PORT': '', # noma leyo abayisebenzisayo}}

Sibheka umugqa othi ALLOWED_HOSTS=[] bese sengeza isizinda noma ikheli esizolifinyelela ngalo, okuholela kokuthile okufana nokuthi ALLOWED_HOSTS=['www.domain.com']

Silungiselela umkhombandlela wamafayela we-static, sibheka umugqa othi STATIC_ROOT = ' ' futhi sishintsha inani, sibeka indlela ephelele lapho sifuna ukuthi amafayili ethu e-static abe khona, kimi ngiwushiye ucishe ube kanjena STATIC_ROOT='/var/www/ENV-nombreApp/nombreApp/statics/'

Cishe usuqedile, senza umyalo olandelayo:
./manage.py collectstatic

Lokhu kuzodala ifolda ebizwa ngokuthi ' statics' endleleni esiyichazile ku-settings.py , lapho wonke amafayela ethu aqinile azotholakala khona.

Ekugcineni siqala kabusha umphathi ukuze athathe izinguquko ezintsha:
supervisorctl restart nombreApp

Futhi kungaba njalo, ekugcineni kwakungeyona into enkulu kangako, akunjalo? Kwakubonakala kulula kimi 

Ngethemba ukuthi iwusizo kuwe, ukubingelela 

Imibhalo ye-GUnicorn

Imibhalo yeSupervisord


Engeza njengomthombo okhethwayo ku-Google