Ungasifaka njani isicelo se-Django:

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 😉

Amaxwebhu eGUnicorn

Amaxwebhu eSuphavayiza


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   f3niX sitsho

    Ndiyaqonda ukuba usetyenziso lwe-Django akufuneki lubekwe kwingcambu yolawulo lomncedisi wewebhu (/ var / www)? Kwezokhuseleko, andazi ukuba ndiphosakele na.

    Ukubulisa

    1.    urKh sitsho

      Kulungile !!! Yayiyinto endandingayazi kwaphela, ndiza kuhlaziya ukungena 😛 kwaye nje ukubuya kwam ngoMvulo ndiza kwenza utshintsho kwisicelo se-xD
      Gracias

  2.   URodrigo Bravo (igosa) sitsho

    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!

  3.   Ncedisa uFenriz sitsho

    hahaha ctm izolo ndibhala i-Django kwaye sele udlula kumnyele we-999999 Imibuliso yamadoda xD

  4.   iqeec2 sitsho

    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 =)

  5.   ozkar sitsho

    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.

  6.   i-sgmart sitsho

    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?

    1.    i-sgmart sitsho

      Isebenzile !!!!

  7.   imephu sitsho

    Isifundo esihle kakhulu kodwa ungayenza enye yendlela yokufaka usetyenziso lwam kwiserver yewebhu esele ikwimveliso
    I gracias