Zvakadini nekukwazisa mose, ichi ndicho chinyorwa changu chekutanga mu <» DesdeLinux (de varios que tengo en mis borradores xD), espero les sea de utilidad 😀
Zvakanaka, mune rangu nyowani uye razvino basa, panguva ino kutama kwemaitiro akati wandei kuenda kuDjango kuri kuitiswa (kushamisa sei eh? XD) uye rimwe rebasa rangu, kunze kwekusimudzira, iko kuisa mukugadzirwa kweizvi, saka se mudzidzi akanaka, sezvo yaive nguva yangu yekutanga kuisa kunyorera mukugadzira pane chaiyo server: $ Ini ndakatanga kuverenga iyo yepamutemo doc yeimwe neimwe inodiwa mapakeji eiyo stack (Gunicorn neSupervisord kupfuura ese), uye ndichiona kuti ivo vadzidzisi MuSpanish vaive vasina kunyatso kujekerwa kwandiri mune zvimwe zvinhu, ndakafunga kugadzira mini gwara nematanho andakateedzera kuisa kunyorera mukugadzira, zvichibva paDjango, Gunicorn, Supervisord, Nginx uye Postgresql stack.
Muchiitiko chandinoshanda, maseva achiri kumhanya naDebian Squeeze, asi gwara rinofanirwa kuve rakakwana kune kumwe kugovera ... saka ngatisvikei pakananga titange:
Ini ndichashanda semushandisi mushandisi. Chekutanga pane zvese, anotevera mapakeji anodikanwa:
Pip -> Chishandiso chekuisa nekugadzirisa mapakeji ePython
aptitude install python-pip
Nginx -> Webhu server (isu tichaishandisa seyakagumisa proxy uye cache iyo static mafaera 'img, js, css') Tinoriisa ne:
aptitude install nginx
Foromani -> Kuteedzera kubata uye kuongorora kunyorera kwedu, kunyangwe iko kuchishandiswa zvimwe zvakawanda. Tinoriisa ne:
aptitude install supervisor
virtualenv -> Zvinotibatsira kugadzira yakajairwa chaiyo yekuuraya nharaunda kune kwedu kunyorera. Tinoriisa ne:
aptitude install python-virtualenv
gunicorn -> webhu server ye python (hatisi kuzoisa izvi izvozvi)
Ini ndinofungidzira vanofanira kunge vatove ne postgresql yakaiswa uye yakagadzirirwa
psychopg2 -> Postgresql chinongedzo che python (hatisi kuzochiisa futi)
Gadzira chaiyo nharaunda ine hunhu:
Kutanga tichaenda kune dhairekitori rinoshanda ratichazoshandisa kuisa mukugadzira:
cd /var/www/
Zvino mune ino dhairekitori isu tichagadzira iyo chaiyo nharaunda.
virtualenv ENV-nombreApp
Isu tinotamira kune dhairekitori iro ini ndichangobva kugadzira hunhu
cd ENV-nombreAPP
Isu tinoteedzera kunyorera mune ino dhairekitori uye ikozvino tinoenderera nekumisikidza nharaunda ne:
source bin/activate
Iyo yekukurumidza inofanira ikozvino kutaridzika senge (ENV)usuario@host:
Izvi zvino zvaizoita zvese zvatinoita zvakachengetwa mudhairekitori / var / www / ENV-appname / pasina kukanganisa system mapakeji
Iye zvino taenda kune dhairekitori rekunyorera:
cd nombreApp
Isu tinoenderera mberi nekuisa iyo rondedzero yeapplication kutsamira (kana zvichidikanwa), umo mavanotsanangurwa mufaira zvinodiwa.txt:
pip install -r requirements.txt
Tinogona zvakare kuisa mapakeji pachedu, semuenzaniso, kuisa chinongedzo che postgresql:
pip install psycopg2
GUnicorn kuisirwa uye kumisikidzwa:
Kuti tiise iyo tinozviita nenzira imwechete:
pip install gunicorn
Iye zvino tava kuzoimisa, nekuti izvi isu tichagadzira faira inonzi gunicorn-deploy.py mumudzi wekushandisa kwedu, (kunyangwe zita racho richigona kuve chero chinhu) nezvirimo zvinotevera:
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
Supervisord kumisikidza:
Zvino ngatisete iyo foromani, pane izvo isu tinogadzira iyo yekumisikidza faira ne
echo_supervisord_conf > /etc/supervisord.conf
Iye zvino isu tinogadzirisa iyo yekumisikidza faira:
vim /etc/supervisord.conf
Uye isu tinosunungura mitsara inotevera nekubvisa iyo; (semicolon):
[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 = nhema minfds = 1024 = 200 [rpcinterface: supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface: make_main_rpcinterface [supervisorctl] serverurl = unix: [chirongwa: appname] command = / var / www / ENV-appname / bin / django_unicorn -c / var / www / ENV -Appname / appname / gunicorn-deploy.py dhairekitori / / var / www / ENV-appname / appname / autostart = chokwadi autorestart = mushandisi wechokwadi = Username redirect_stderr = chokwadi stdout_logfile = / var / www / matanda / appname / supervisord.log
Iye zvino isu tichagadzira iyo script yekuti manejimendi atange nehurongwa, nekuda kweizvozvo isu tichagadzira iyo faira:
vim /etc/init.d/supervisord
Uye isu tinowedzera zvinotevera zvirimo:
# Supervisord auto-kutanga # # tsananguro: Auto-inotanga manejimendi # processname: supervisord # pidfile: /var/run/supervisord.pid SUPERVISORD = / usr / yemuno / bin / supervisord SUPERVISORCTL = / usr / yemuno / bin / bhaisikopo kesi $ 1 pakutanga) echo -n "Kutanga maneja:" $ SUPERVISORD echo ;; mira) echo -n "Kumisa manejimendi:" $ SUPERVISORCTL shutdown echo ;; restart) echo -n "Kumisa maneja:" $ SUPERVISORCTL kudzima echo echo -n "Kutanga manejimendi:" $ SUPERVISORD echo ;; C uyo
Uye ikozvino isu tinopa kuendesa mvumo kune iyo faira kuitira kuti itange nehurongwa:
sudo chmod +x /etc/init.d/supervisord
Isu tinogadziridza zvinongedzo kuti titange sevhisi:
sudo update-rc.d supervisord defaults
Isu tinotanga sevhisi:
sudo /etc/init.d/supervisord start
Kugadzira nginx:
Iyi nhanho zvakare yakapusa, isu tichagadzira inotevera yekumisikidza faira ye nginx yedu chikumbiro:
vim /etc/nginx/sites-enabled/nombreApp
Uye isu tichawedzera zvinotevera zvirimo kwauri
sevha {teerera 9001; # chiteshi kwavanoda nginx kuteerera server_name www.domain.com; # kana 192.168.0.100, kero iyo isu tichawana kupinda_log /var/log/nginx/Appname.access.log; # apo patichava nenzvimbo yekushandisa danda / {# apo nginx ichafona kana uchiwana www.dominio.com/ proxy_pass http: // 127.0.0.1: 8001; proxy_set_header Host $ http_host; } nzvimbo / static / {# apo nginx inosvika kana tapinda www.domain.com/static/ alias / var / www / ENV-appname / appname / staticfiles /; }}
Uye isu tinotangazve nginx:
service nginx restart
Kugadzira Django:
Ngatishandurei django yekumisikidza faira:
vim nombreApp/settings.py
Tinotsvaga mutsara unoti DEBUG = Ichokwadi uye isu tinoshandura kukosha, asara BHUKU = Nhema
Isu tinowedzera iyo DB parameter:
DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2', # kana mysql, kana chero 'NAME': 'DBName', 'USER': 'DBUser', 'PASSWORD': 'password DB ',' HOST ':' localhost ', # kana iyo yavanoda' PORT ':' ', # kana iyo yavari kushandisa}}
Tinotsvaga mutsara ZVINOTENDESWA_HOSTS = [] uye isu tinowedzera duraini kana kero iyo yatinozowana, tichisiya chimwe chakadai ZVINODZIDZISWA_HOSTS = ['www.domain.com']
Isu tinogadzirisa dhairekitori remafaira emira, tinotsvaga mutsara unoti STATIC_ROOT = ' '
uye isu tinoshandura kukosha, tichiisa iyo chaiyo nzira kwatinoda kuti mafaira edu ave, mune yangu ini ndakaisiya zvakanyanya kana zvishoma seizvi STATIC_ROOT='/var/www/ENV-nombreApp/nombreApp/statics/'
Tave kupera, isu tinoita inotevera kuraira:
./manage.py collectstatic
Izvi zvinogadzira dhairekitori rine zita 'static munzira yatino tsanangura mu marongero.py ', ndipo pachave ese edu emafaira mafaira achave.
Uye pakupedzisira isu tinotangazve manejimendi kuti atore shanduko nyowani:
supervisorctl restart nombreApp
Uye izvo zvaizove zvese, pakupedzisira zvaisave zvakanyanya chokwadi? zvaiita sezviri nyore kwandiri 😀
Ndinovimba ichabatsira kwauri, kwaziso 😉
Ini ndinonzwisisa kuti iyo Django app haifanire kuiswa mumudzi wewebhu server dhairekodhi (/ var / www)? Zvekuchengetedza, ini handizive kana ndiri kukanganisa.
Thanks.
Zvese zvakanaka !!! Chaive chinhu chandanga ndisingazive zvachose, ndichagadzirisa iyo yekupinda 😛 uye pandinongodzoka neMuvhuro ndinoita shanduko mune xD application
gracias
Epale mukoma dzidziso yakanaka. Munguva pfupi yapfuura ini ndaivewo mumwe chete asi muDebian 7, ndaifanira kutsvaga nekuverenga zvimwe kana zvishoma. Ini ndinokurudzira kuti iwe ugadzire chaiyo nharaunda yehunhu hwakanaka mumusha wemushandisi mune yakavanzika dhairekitori.
Ndinokutendai!
hahaha ctm ini nezuro ndinonyora Django uye wave kutopfuura nemu galaxy 999999 Kwazisai varume xD
Chinyorwa chakanaka kwazvo =) vhiki imwe chete yapfuura ndakaendesa yangu django app asi ndakazviita neuzigi uye nginx, unoziva here kuti gunicorn ine mukana wei? Ndakaona ichitaurwa zvakawanda.
Zvakanaka kuona kuti django iri kuve inozivikanwa kwazvo, chokwadi ndicho chakanakisa chimiro chandakaona =)
Zve STATIC_ROOT zvandinoita kutsanangura musiyano wepasirese. Chinhu chakadai.
import os
PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_PATH, '../backend/static')
Iko backend iri app yandakagadzira. Saka ini ndinove nechokwadi chekuti kwandinoendesa chirongwa, nzira yepasirese yakafanana.
Zvinonakidza, ini ndichaedza mune ramangwana.
Nenzira, pane chero munhu anoziva Maitiro ekugonesa maacnc uye asiri-ascii mavara mune django application?
Ndatarisa kwese kwese, hapana imwe yedzinotevera nzira inondishandira:
sys.setdefaultencoding ('utf-8') # mumasayiti.py
# - * - kukodha: utf-8 - * - # mune yega python faira
Kugadzirisa saiti.py, uye kuisa utf-8 pachinzvimbo cheascii inofanirwa kushanda, asi $ file models.py inondizivisa kuti faira rangu richiri ascii.
Chero Mazano?
Yakashanda !!!!
yakanaka kwazvo dzidziso asi iwe unogona kuita imwe yenzira yekuisa yangu app pane yewebhu server yatove mukugadzirwa
gracias