Kunjani malunga nokubulisa wonke umntu, eli linqaku lam lokuqala <» DesdeLinux (de varios que tengo en mis borradores xD), espero les sea de utilidad 😀
Ewe, emsebenzini wam omtsha nowangoku, okwangoku ukufuduswa kweenkqubo ezininzi ukuya eDjango (ayimangalisi eh ?? xD) kwaye omnye wemisebenzi yam, ngaphandle kophuhliso, kukubeka ezi zinto kwimveliso, zilunge kangakanani funda, kuba yayilixesha lam lokuqala ukufaka isicelo kwimveliso kwiseva yokwenyani: $ Ndiqale ukufunda i-doc esemthethweni nganye yeephakeji ezifunekayo zesitaki (iGunicorn neSuphavayiza ngaphezu kwako konke), kwaye ndibona ukuba iitutorials In I-Spanish bezingacacanga nakum kwezinye iinkalo, ndaye ndagqiba kwelokuba ndenze isikhokelo esincinci kunye namanyathelo endiwalandeleyo ukubeka isicelo kwimveliso, ngokusekwe kwi-Django, Gunicorn, Supervisord, Nginx kunye nePostgresql.
Kwimeko apho ndisebenza khona, iiseva zisaqhuba i-Debian Squeeze, kodwa isikhokelo kufuneka sisebenze ngokupheleleyo kolunye ulwabiwo ... ke masiqonde ngqo kwinqanaba kwaye siqale:
Ndiza kusebenza njengomsebenzisi ophezulu. Okokuqala, ezi phakheji zilandelayo ziyafuneka:
I-PIP Isixhobo sokufaka kunye nokulawula iiphakheji zePython
aptitude install python-pip
Nginx -> Iseva yeWebhu (siza kuyisebenzisa njengommeleli obuyela umva kunye nokugcina iifayile ezimileyo 'img, js, css') Siyifaka kunye:
aptitude install nginx
Umphathi -> Isicelo sokulawula kunye nokubeka esweni isicelo sethu, nangona sisetyenziselwa okuninzi. Siyifaka kunye:
aptitude install supervisor
Yokwenene -Iyasinceda ekwenzeni imeko-bume yokwenyani yesicelo sethu. Siyifaka kunye:
aptitude install python-virtualenv
IGunicorn -> iseva yewebhu ye-python (asizukuyifaka le nto okwangoku)
Ndicinga ukuba sele beyifakile kwaye bayilungiselele
Iifayile -Ipostgresql isinxibelelanisi se-python (asizukuyifaka kwakhona)
Yenza imeko ebonakalayo enesidima:
Kuqala siza kuya kulawulo olusebenzayo esiya kuthi silusebenzise kwimveliso:
cd /var/www/
Ke kolu lawulo siza kudala imeko ebonakalayo:
virtualenv ENV-nombreApp
Sihambisa umkhombandlela endisandula ukuwenza wadala
cd ENV-nombreAPP
Sikopa usetyenziso kolu lawulo kwaye ngoku siyaqhubeka nokwenza imeko-bume:
source bin/activate
Ukukhawuleza ngoku kufuneka kubonakale ngathi (ENV)usuario@host:
Oku ngoku kuyakwenza yonke into esiyenzayo igcinwe kulawulo / var / www / igama le-ENV-igama / ngaphandle kokuchaphazela iipakeji zenkqubo
Ngoku siya kulawulo lwesicelo:
cd nombreApp
Siqhubeka ukufaka uluhlu lokuxhomekeka kwesicelo (ukuba kukho imfuneko), apho zichazwe kwifayile iimfuno.txt:
pip install -r requirements.txt
Sinokufaka iipakeji ngokukodwa, umzekelo, ukufaka isixhobo sokudibanisa postgresql:
pip install psycopg2
Ukufakwa kwe-GUnicorn kunye noqwalaselo:
Ukuyifaka siyenza ngendlela efanayo:
pip install gunicorn
Ngoku siza kuyicwangcisa, kuba oku siza kwenza ifayile ebizwa i-gun-deploy.py kwingcambu yesicelo sethu, (nangona igama linokuba yiyo nantoni na) ngalo mxholo ulandelayo:
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
Uqwalaselo lwesuphavayiza:
Ngoku masisete umphathi, kuba senza ifayile yoqwalaselo nge
echo_supervisord_conf > /etc/supervisord.conf
Ngoku sihlela ifayile yoqwalaselo:
vim /etc/supervisord.conf
Kwaye asikhulule le mizila ilandelayo ngokususa i; (semicolon):
[unix_http_server] fayile = / tmp / isuphavayiza.sock [isuphavayiza] logfile = / var / log / supervisord.log logfile_maxbytes = 50MB logfile_backups = 10 loglevel = debug pidfile = / var / run / supervisord.pid nodaemon = minfds min = 1024 = 200 [rpcinterface: supervisor] umphathi.rpcinterface_factory = umphathi.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 umkhombandlela = / var / www / ENV-appname / appname / autostart = oyinyaniso
Ngoku siza kwenza iskripthi ukuba umphathi aqale ngenkqubo, kuba siza kuyenza ifayile:
vim /etc/init.d/supervisord
Kwaye sidibanisa umxholo olandelayo:
# Isuphavayiza yokuqalisa ngokuzenzekelayo # # inkcazo: Ukuqala ngokuzenzekelayo isuphavayiza # igama lenkqubo: isuphavayiza # pidfile: /var/run/supervisord.pid ISUPERVISORD = / usr / yendawo / ibin / umphathi wesuphavayiza SUPERVISORCTL = / usr / yendawo / ibin / umphathi wecala 1 ekuqaleni) echo -n "Isuphavayiza yokuqalisa:" $ SUPERVISORD echo ;; misa) echo -n "Isuphavayiza yokumisa:" $ SUPERVISORCTL shutdown echo ;; qala kwakhona) echo -n "Isuphavayiza yokumisa:" ukuba uC
Kwaye ngoku sinika ukwenza iimvume kwifayile ukuze iqale ngenkqubo:
sudo chmod +x /etc/init.d/supervisord
Sihlaziya amakhonkco ukuqala inkonzo:
sudo update-rc.d supervisord defaults
Siqala inkonzo:
sudo /etc/init.d/supervisord start
Ukuseta i-nginx:
Eli nyathelo nalo lilula, siya kwenza le fayile yoqwalaselo ilandelayo ye nginx isicelo sethu:
vim /etc/nginx/sites-enabled/nombreApp
Kwaye siza kongeza umxholo olandelayo kuwe
umncedisi {mamela 9001; # izibuko apho bafuna i-nginx server_name ukuba bamamele i-www.domain.com; # okanye 192.168.0.100, idilesi esiza kuyifumana ukufikelela_log /var/log/nginx/Appname.access.log; # apho siya kuba nendawo yelog yokufaka / / Ummeli we-proxy_set_header $ http_host; } indawo / indawo emileyo / {# apho i-nginx izakufikelela xa singena www.dominio.com/static/ alias / var / www / ENV-appname / appname / staticfiles /; }}
Kwaye siqala kwakhona i-nginx:
service nginx restart
Ukuseta i-Django:
Masiguqule ifayile yoqwalaselo lwe-django:
vim nombreApp/settings.py
Sijonge umgca othi I-DEBUG = Yinyani kwaye silitshintsha ixabiso, eseleyo UKUGQIBELA = Ubuxoki
Songeza iiparameter ze-DB:
IINDATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2', # okanye mysql, okanye nantoni na abayisebenzisayo 'IGAMA': 'DBName', 'USER': 'DBUser', 'PASSWORD' : 'iphasiwedi DB', 'HOST': 'localhost', # okanye le bayifunayo 'IPOTI': '', # okanye le bayisebenzisayo}}
Sijonge umgca IYAVUMELWA_IINKONZO = [] kwaye songeza i-domain okanye idilesi esiza kungena ngayo, sishiya into efana nale YABALULEKILE_HOSTS = ['www.domain.com']
Silungiselela umkhombandlela weefayile ezimileyo, sijonga umgca othi STATIC_ROOT = ' '
kwaye silitshintsha ixabiso, sibeka eyona ndlela iphambili apho sifuna ukuba iifayile ze-static zibekhona, kwimeko yam ndiyishiye ngaphezulu okanye ngaphantsi ngoluhlobo STATIC_ROOT='/var/www/ENV-nombreApp/nombreApp/statics/'
Sekugqityiwe, senza lo myalelo ulandelayo:
./manage.py collectstatic
Oku kuyakwenza incwadi enegama 'I-statics kwindlela esiyichazayo kwifayile ye- useto.py ', Kulapho ziya kuthi zonke iifayile zethu ezimileyo.
Kwaye ekugqibeleni siqala kwakhona umphathi ukuba athathe utshintsho olutsha:
supervisorctl restart nombreApp
Kwaye konke oko, ekugqibeleni bekungekubi kangako? ibibonakala ilula kum 😀
Ndiyathemba ukuba iluncedo kuwe, imibuliso 😉
Ndiyaqonda ukuba usetyenziso lwe-Django akufuneki lubekwe kwingcambu yolawulo lomncedisi wewebhu (/ var / www)? Kwezokhuseleko, andazi ukuba ndiphosakele na.
Ukubulisa
Kulungile !!! Yayiyinto endandingayazi kwaphela, ndiza kuhlaziya ukungena 😛 kwaye nje ukubuya kwam ngoMvulo ndiza kwenza utshintsho kwisicelo se-xD
Gracias
Umzalwana uEpale isifundo esihle. Bendikwangoku nje kwinto enye kodwa kwi-Debian 7, kuye kwafuneka ndikhangele kwaye ndifunde ngakumbi okanye kancinci. Ndicebisa ukuba wenze imeko ebonakalayo yentsingiselo kwikhaya lomsebenzisi kwifolda efihliweyo.
Nibuliso!
hahaha ctm izolo ndibhala i-Django kwaye sele udlula kumnyele we-999999 Imibuliso yamadoda xD
Inqaku elilunge kakhulu =) kwiveki ephelileyo ndafaka i-app yam ye-django kodwa ndiyenzile nge-uwsgi kunye ne-nginx, uyazi ukuba yeyiphi i-gunicorn enayo? Ndikubonile kukhankanywa kakhulu.
Kumnandi ukubona ukuba i-django iya ithandwa kakhulu, inyani sesona sikhokelo silungileyo endisibonileyo =)
Kwi-STATIC_ROOT into endiyenzayo ichaza umahluko wehlabathi. Into enje:
import os
PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_PATH, '../backend/static')
Apho ukubuyela umva kukho usetyenziso endilwenzileyo. Ngale ndlela ndiqinisekisa ukuba apho ndibeka khona iprojekthi, indlela yehlabathi iyafana.
Into enomdla, ndiza kuzama kwixesha elizayo.
Ngendlela, ngaba ukhona umntu owaziyo ukuba enze njani i-accents kunye nabalinganiswa be-non-ascii kwisicelo se-django?
Ndijonge naphi na, akukho nanye kwezi ndlela zilandelayo esebenzayo kum:
sys.setdefaultencoding ('utf-8') # kwiindawo.py
# - * - ukufaka iikhowudi: utf-8 - * - # kuzo zonke iifayile zepython
Ukuhlela indawo.py, kunye nokubeka i-utf-8 endaweni ye-ascii kufanelekile ukuba isebenze, kodwa $ file models.py indazisa ukuba ifayile yam iseyi-ascii.
Naziphi na iingcebiso?
Isebenzile !!!!
Isifundo esihle kakhulu kodwa ungayenza enye yendlela yokufaka usetyenziso lwam kwiserver yewebhu esele ikwimveliso
I gracias