அனைவருக்கும் வணக்கம் எப்படி, இது <» லினக்ஸில் உள்ள எனது முதல் கட்டுரை (எனது வரைவுகள் xD இல் உள்ள பலவற்றில்), இது உங்களுக்கு பயனுள்ளதாக இருக்கும் என்று நம்புகிறேன்
சரி, எனது புதிய மற்றும் தற்போதைய வேலையில், ஜாங்கோவிற்கு பல அமைப்புகளின் இடம்பெயர்வு தற்போது மேற்கொள்ளப்பட்டு வருகிறது (எவ்வளவு விசித்திரமானது? எக்ஸ்.டி) மற்றும் எனது பணிகளில் ஒன்று, வளர்ச்சியைத் தவிர, இவற்றின் உற்பத்தியில் ஈடுபடுவது, பின்னர் நல்ல பயிற்சி, இது ஒரு உண்மையான சேவையகத்தில் ஒரு பயன்பாட்டை தயாரிப்பது எனது முதல் தடவையாக இருந்ததால்: the அடுக்கின் தேவையான ஒவ்வொரு தொகுப்புகளின் (குனிகார்ன் மற்றும் மேற்பார்வையாளர் எல்லாவற்றிற்கும் மேலாக) அதிகாரப்பூர்வ ஆவணத்தைப் படிக்கத் தொடங்கினேன், மேலும் பயிற்சிகள் ஸ்பானிஷ் மொழியில் அவை சில அம்சங்களில் எனக்கு மிகவும் தெளிவாகத் தெரியவில்லை, ஜாங்கோ, குனிகார்ன், சூப்பர்வைசார்ட், என்ஜின்க்ஸ் மற்றும் போஸ்ட்கிரெஸ்கல் ஸ்டேக்கின் அடிப்படையில் பயன்பாட்டை உற்பத்திக்கு கொண்டுவர நான் பின்பற்றிய படிகளுடன் ஒரு மினி வழிகாட்டியை உருவாக்க முடிவு செய்தேன்.
நான் பணிபுரியும் விஷயத்தில், சேவையகங்கள் இன்னும் டெபியன் கசக்கி இயங்குகின்றன, ஆனால் வழிகாட்டி மற்ற விநியோகங்களுக்கு முழுமையாக செல்லுபடியாகும் ... எனவே நேராக வந்து தொடங்குவோம்:
நான் ஒரு சூப்பர் பயனராக வேலை செய்வேன். முதலில், பின்வரும் தொகுப்புகள் தேவை:
இந்நிலையில் PIP -> பைத்தானுக்கான தொகுப்புகளை நிறுவ மற்றும் நிர்வகிப்பதற்கான கருவி
aptitude install python-pip
nginx -> வலை சேவையகம் (நாங்கள் இதை ஒரு தலைகீழ் ப்ராக்ஸியாகப் பயன்படுத்துவோம் மற்றும் நிலையான கோப்புகளை 'img, js, css' கேச் செய்வோம்) இதை நாங்கள் நிறுவுகிறோம்:
aptitude install nginx
Supervisord -> எங்கள் பயன்பாட்டை நிர்வகிக்கவும் கண்காணிக்கவும் பயன்பாடு, இது இன்னும் அதிகமாகப் பயன்படுத்தப்பட்டாலும். இதை நாங்கள் நிறுவுகிறோம்:
aptitude install supervisor
விர்ச்சுவலென்வ் -> இது எங்கள் பயன்பாட்டிற்கான தனிப்பயனாக்கப்பட்ட மெய்நிகர் செயலாக்க சூழலை உருவாக்க உதவுகிறது. இதை நாங்கள் நிறுவுகிறோம்:
aptitude install python-virtualenv
குனிகார்ன் -> மலைப்பாம்பிற்கான வலை சேவையகம் (இதை நாங்கள் இன்னும் நிறுவ மாட்டோம்)
அவர்கள் ஏற்கனவே postgresql ஐ நிறுவி கட்டமைத்திருக்க வேண்டும் என்று கருதுகிறேன்
சைக்கோப்ஜி2 -> பைத்தானுக்கான Postgresql இணைப்பு (நாங்கள் இதை இன்னும் நிறுவ மாட்டோம்)
Virtualenv உடன் மெய்நிகர் சூழலை உருவாக்கவும்:
முதலில் நாம் உற்பத்தி அடைவுக்குப் பயன்படுத்தும் பணி அடைவுக்குச் செல்லப் போகிறோம்:
cd /var/www/
இந்த கோப்பகத்தில் நாம் மெய்நிகர் சூழலை உருவாக்குவோம்:
virtualenv ENV-nombreApp
நான் virtualenv ஐ உருவாக்கிய கோப்பகத்திற்கு செல்கிறோம்
cd ENV-nombreAPP
இந்த கோப்பகத்தில் பயன்பாட்டை நகலெடுக்கிறோம், இப்போது சூழலை செயல்படுத்துகிறோம்:
source bin/activate
வரியில் இப்போது இருக்க வேண்டும் (ENV)usuario@host:
இது இப்போது நாம் செய்யும் அனைத்தும் கோப்பகத்தில் சேமிக்கப்படும் / var / www / ENV-appname / கணினி தொகுப்புகளை பாதிக்காமல்
இப்போது நாம் பயன்பாட்டு கோப்பகத்திற்கு செல்கிறோம்:
cd nombreApp
பயன்பாட்டு சார்புகளின் பட்டியலை நிறுவ நாங்கள் தொடர்கிறோம் (தேவைப்பட்டால்), அவை கோப்பில் குறிப்பிடப்பட்டுள்ளன අවශ්යතා. txt:
pip install -r requirements.txt
தொகுப்புகளை தனித்தனியாக நிறுவலாம், எடுத்துக்காட்டாக, இணைப்பியை நிறுவ இந்த postgresql:
pip install psycopg2
GUnicorn நிறுவல் மற்றும் உள்ளமைவு:
அதை நிறுவ நாம் அதே வழியில் செய்கிறோம்:
pip install gunicorn
இப்போது நாம் அதை உள்ளமைக்கப் போகிறோம், இதற்காக நாம் ஒரு கோப்பை உருவாக்கப் போகிறோம் gunicorn-deploy.py எங்கள் பயன்பாட்டின் மூலத்தில், (பெயர் எதுவும் இருக்கலாம் என்றாலும்) பின்வரும் உள்ளடக்கத்துடன்:
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, அதற்காக நாங்கள் உள்ளமைவு கோப்பை உருவாக்குகிறோம்
echo_supervisord_conf > /etc/supervisord.conf
இப்போது நாம் கட்டமைப்பு கோப்பை திருத்துகிறோம்:
vim /etc/supervisord.conf
அகற்றுவதன் மூலம் பின்வரும் வரிகளை நாங்கள் கட்டுப்படுத்துகிறோம்; (அரைப்புள்ளி):
[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 = false mincds = 1024 = 200. -அப்பெயர் / பயன்பாட்டு பெயர் / துப்பாக்கிகார்ன்- டெப்லோய்.பீ கோப்பகம் = / var / www / ENV-appname / appname / autostart = true autorestart = true user = பயனர்பெயர் redirect_stderr = true stdout_logfile = / var / www / log / appname / supervisord.log
இப்போது கணினியுடன் தொடங்க மேற்பார்வையாளருக்கான ஸ்கிரிப்டை உருவாக்குவோம், அதற்காக கோப்பை உருவாக்குவோம்:
vim /etc/init.d/supervisord
பின்வரும் உள்ளடக்கத்தை நாங்கள் சேர்க்கிறோம்:
# மேற்பார்வையாளர் தானியங்கு தொடக்க # # விளக்கம்: தானாகத் தொடங்கும் மேற்பார்வையாளர் # செயல்முறை பெயர்: மேற்பார்வையாளர் # பிட்ஃபைல்: /var/run/supervisord.pid SUPERVISORD = / usr / local / bin / supervisord SUPERVISORCTL = / usr / local / bin / supervisorctl case தொடக்கத்தில்) echo -n "தொடக்க மேற்பார்வையாளர்:" $ SUPERVISORD எதிரொலி ;; stop) echo -n "மேற்பார்வையாளரை நிறுத்துதல்:" $ SUPERVISORCTL பணிநிறுத்தம் எதிரொலி; மறுதொடக்கம்) echo -n "மேற்பார்வையாளரை நிறுத்துதல்:" $ SUPERVISORCTL பணிநிறுத்தம் எதிரொலி எதிரொலி -n "தொடக்க மேற்பார்வையாளர்:" $ SUPERVISORD எதிரொலி ;; அந்த சி
இப்போது நாம் கோப்பை இயக்க அனுமதிகளை வழங்குகிறோம், இதனால் அது கணினியுடன் தொடங்கப்படலாம்:
sudo chmod +x /etc/init.d/supervisord
சேவையைத் தொடங்க இணைப்புகளை நாங்கள் புதுப்பிக்கிறோம்:
sudo update-rc.d supervisord defaults
நாங்கள் சேவையைத் தொடங்குகிறோம்:
sudo /etc/init.d/supervisord start
Nginx ஐ அமைத்தல்:
இந்த படி மிகவும் எளிதானது, பின்வரும் கட்டமைப்பு கோப்பை உருவாக்குவோம் Nginx எங்கள் பயன்பாட்டிற்கு:
vim /etc/nginx/sites-enabled/nombreApp
பின்வரும் உள்ளடக்கத்தை உங்களிடம் சேர்ப்போம்
சேவையகம் {கேளுங்கள் 9001; சர்வர்_பெயர் www.domain.com ஐக் கேட்க அவர்கள் விரும்பும் # போர்ட்; # அல்லது 192.168.0.100, அணுகல்_லாக் /var/log/nginx/Appname.access.log ஐ அணுகும் முகவரி; # எங்களிடம் பயன்பாட்டு பதிவு இடம் இருக்கும் / {# அங்கு www.dominio.com/proxy_pass http://127.0.0.1:8001 ஐ அணுகும்போது nginx அழைக்கும்; proxy_set_header ஹோஸ்ட் $ http_host; www இடம் / நிலையான / {# நாம் www.dominio.com/static/ மாற்றுப்பெயர் / var / www / ENV-appname / appname / staticfiles / ஐ உள்ளிடும்போது nginx அணுகும்; }}
நாங்கள் nginx ஐ மறுதொடக்கம் செய்கிறோம்:
service nginx restart
ஜாங்கோவை அமைத்தல்:
ஜாங்கோ உள்ளமைவு கோப்பை மாற்றுவோம்:
vim nombreApp/settings.py
என்று சொல்லும் வரியை நாங்கள் தேடுகிறோம் DEBUG = உண்மை நாங்கள் மதிப்பை மாற்றுகிறோம், மீதமுள்ள DEBUG = தவறு
நாங்கள் DB அளவுருக்களைச் சேர்க்கிறோம்:
தரவுத்தளங்கள் = default 'இயல்புநிலை': {'பொறி': 'django.db.backends.postgresql_psycopg2', # அல்லது mysql, அல்லது 'NAME': 'DBName', 'USER': 'DBUser', 'PASSWORD' : 'கடவுச்சொல் DB', 'HOST': 'லோக்கல் ஹோஸ்ட்', # அல்லது அவர்களுக்கு 'PORT' தேவை: '', # அல்லது அவர்கள் பயன்படுத்தும் ஒன்று}}
நாங்கள் வரியைத் தேடுகிறோம் ALLOWED_HOSTS = [] நாங்கள் அணுகக்கூடிய டொமைன் அல்லது முகவரியைச் சேர்ப்போம் ALLOWED_HOSTS = ['www.domain.com']
நிலையான கோப்புகளுக்கான கோப்பகத்தை நாங்கள் உள்ளமைக்கிறோம், சொல்லும் வரியை நாங்கள் தேடுகிறோம் STATIC_ROOT = ' '
எங்கள் நிலையான கோப்புகள் இருக்க விரும்பும் இடத்தில் முழுமையான பாதையை வைப்பதன் மூலம் மதிப்பை மாற்றுவோம், என் விஷயத்தில் நான் இதை அதிகமாகவோ அல்லது குறைவாகவோ விட்டுவிட்டேன் STATIC_ROOT='/var/www/ENV-nombreApp/nombreApp/statics/'
கிட்டத்தட்ட முடிந்தது, நாங்கள் பின்வரும் கட்டளையை இயக்குகிறோம்:
./manage.py collectstatic
இது 'என்ற பெயருடன் ஒரு கோப்புறையை உருவாக்கும்புள்ளிவிவரங்கள் நாம் குறிப்பிடும் பாதையில் settings.py ', எங்களுடைய நிலையான கோப்புகள் அனைத்தும் இருக்கும்.
இறுதியாக புதிய மாற்றங்களை எடுக்க மேற்பார்வையாளரை மறுதொடக்கம் செய்கிறோம்:
supervisorctl restart nombreApp
அதுதான் இருக்கும், இறுதியில் அது பெரிய விஷயமாக இல்லை, இல்லையா? இது எனக்கு எளிமையாகத் தோன்றியது
இது உங்களுக்கு பயனுள்ளதாக இருக்கும் என்று நம்புகிறேன், வாழ்த்துக்கள்
வலை சேவையக கோப்புறையின் (/ var / www) மூலத்தில் ஜாங்கோ பயன்பாட்டை வைக்கக்கூடாது என்பதை நான் புரிந்துகொள்கிறேன்? பாதுகாப்பிற்காக, நான் தவறாக இருக்கிறேனா என்று எனக்குத் தெரியவில்லை.
வாழ்த்துக்கள்.
எல்லாம் சரி !!! இது எனக்கு முற்றிலும் தெரியாத ஒன்று, நான் உள்ளீட்டைப் புதுப்பிப்பேன் Monday திங்களன்று திரும்பியவுடன் நான் xD பயன்பாட்டில் மாற்றங்களைச் செய்வேன்
நன்றி
எபலே சகோதரர் நல்ல பயிற்சி. சமீபத்தில் நானும் அதே இடத்தில் இருந்தேன், ஆனால் டெபியன் 7 இல், நான் அதிகமாகவோ அல்லது குறைவாகவோ தேட மற்றும் படிக்க வேண்டியிருந்தது. பயனரின் வீட்டில் virtualenv இன் மெய்நிகர் சூழலை மறைக்கப்பட்ட கோப்புறையில் உருவாக்க பரிந்துரைக்கிறேன்.
நன்றி!
hahaha ctm நான் நேற்று ஜாங்கோவை ஆவணப்படுத்துகிறேன், நீங்கள் ஏற்கனவே விண்மீன் 999999 வழியாக செல்கிறீர்கள் வாழ்த்துக்கள் ஆண்கள் xD
மிகச் சிறந்த கட்டுரை =) ஒரு வாரத்திற்கு முன்பு நான் எனது ஜாங்கோ பயன்பாட்டைப் பயன்படுத்தினேன், ஆனால் நான் அதை uwsgi மற்றும் nginx உடன் செய்தேன், துப்பாக்கிகார்னுக்கு என்ன நன்மை இருக்கிறது தெரியுமா? நான் அதை நிறைய குறிப்பிட்டுள்ளேன்.
ஜாங்கோ மிகவும் பிரபலமாகி வருவதைப் பார்ப்பது மகிழ்ச்சி அளிக்கிறது, உண்மைதான் நான் பார்த்த சிறந்த கட்டமைப்பாகும் =)
STATIC_ROOT க்கு நான் செய்வது உலகளாவிய மாறியை வரையறுப்பதாகும். இந்த மாதிரி ஏதாவது:
import os
PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_PATH, '../backend/static')
பின்தளத்தில் நான் உருவாக்கிய பயன்பாடு. எனவே நான் திட்டத்தை எங்கு பயன்படுத்துகிறேன், உலகளாவிய பாதை ஒன்றுதான் என்பதை உறுதிசெய்கிறேன்.
சுவாரஸ்யமானது, நான் எதிர்காலத்தில் முயற்சிப்பேன்.
மூலம், யாருக்கும் தெரியுமா ஒரு ஜாங்கோ பயன்பாட்டில் உச்சரிப்புகள் மற்றும் அஸ்கி அல்லாத எழுத்துக்களை எவ்வாறு இயக்குவது?
நான் எல்லா இடங்களிலும் பார்த்திருக்கிறேன், பின்வரும் முறைகள் எதுவும் எனக்கு வேலை செய்யாது:
sites.py இல் sys.setdefaultencoding ('utf-8') #
ஒவ்வொரு பைதான் கோப்பிலும் # - * - குறியீட்டு: utf-8 - * - #
Site.py ஐத் திருத்துதல், மற்றும் ascii க்கு பதிலாக utf-8 ஐ வைப்பது வேலை செய்ய வேண்டும், ஆனால் $ file models.py எனது கோப்பு இன்னும் ஒரு ascii என்று எனக்குத் தெரிவிக்கிறது.
ஏதேனும் ஆலோசனைகள்?
அது வேலை செய்தது!!!!
மிகச் சிறந்த பயிற்சி, ஆனால் ஏற்கனவே தயாரிப்பில் உள்ள வலை சேவையகத்தில் எனது பயன்பாட்டை எவ்வாறு பதிவேற்றுவது என்று ஒன்றை நீங்கள் செய்ய முடியுமா?
நன்றி