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 