Мен бар жоба негізінде Mac OS X жүйесінде Django жобасын орнату және конфигурациялау процесін қарастыруды ұсынамын.
Кейбір қадамдар [Ubuntu үшін Django орнату мақаласында] орындалғандарға ұқсас болады (https://evileg.com/en/post/3/).
Виртуалды ортаны орнату
- Python 3 орнатыңыз
brew орнату python3
2.Барлық пипті орнату
sudo easy_install пип
- virtualenv орнатыңыз және виртуалды орта жасаңыз
sudo pip3 virtualenv орнату
- Жоба үшін виртуалды ортаны орнатыңыз
virtualenv project_env --python=python3
- Жобаның виртуалды орта каталогына өзгертіңіз және репозиторийді клондаңыз.
cd project_env git clone git@bitbucket.org:MyUser/project.git
- Егер жобаңыз git ішкі модулін пайдаланса, біз ішкі модульдерді де клондаймыз.
CD жобасы git субмодулі init git субмодульін жаңарту
- Мен талаптар.txt файлын пайдаланасыз деп үміттенемін, себебі жобада барлық қажетті бумаларды орнату уақыты келді.
pip install -r талаптар.txt
Python бағдарламасының қажетті нұсқасын орнатыңыз
Егер сізге python бағдарламасының белгілі бір нұсқасы қажет болса, мысалы, өндірістік сервер репозиторийлеріңізде соңғы нұсқасы болмаса, Mac OS X жүйесін қажетті нұсқамен жұмыс істеу үшін арнайы конфигурациялау қажет.
brew install pyenv echo 'eval "$(pyenv init -)"' >> ~/.bash_profile source ~/.bash_profile brew install zlib pyenv install 3.6.7
Егер сіз python орната алмасаңыз және келесі қате орын алса
BUILD FAILED (OS X 10.14.4 using python-build 20180424) Inspect or clean up the working tree at /var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274 Results logged to /var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274.log Last 10 log lines: File "/private/var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274/Python-3.6.7/Lib/ensurepip/__main__.py", line 5, in <module> sys.exit(ensurepip._main()) File "/private/var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274/Python-3.6.7/Lib/ensurepip/__init__.py", line 204, in _main default_pip=args.default_pip, File "/private/var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274/Python-3.6.7/Lib/ensurepip/__init__.py", line 117, in _bootstrap return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths) File "/private/var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274/Python-3.6.7/Lib/ensurepip/__init__.py", line 27, in _run_pip import pip._internal zipimport.ZipImportError: can't decompress data; zlib not available make: *** [install] Error 1
содан кейін келесі мазмұны бар .zshrc файлын жасаңыз
# For compilers to find zlib you may need to set: export LDFLAGS="${LDFLAGS} -L/usr/local/opt/zlib/lib" export CPPFLAGS="${CPPFLAGS} -I/usr/local/opt/zlib/include" # For pkg-config to find zlib you may need to set: export PKG_CONFIG_PATH="${PKG_CONFIG_PATH} /usr/local/opt/zlib/lib/pkgconfig"
Содан кейін қалған қадамдарды орындаңыз.
source .zshrc pyenv install 3.6.7
Қолжетімді python нұсқаларын тексеріңіз
pyenv versions
Қажетті python нұсқасын орнатыңыз
pyenv local 3.6.7 pyenv global 3.6.7
Mac OS X жүйесінде қазір қолданылып жатқан Python нұсқасын тексеріңіз.
python --version
Осыдан кейін virtualenv орнатқан болсаңыз, 4-қадамнан бастап виртуалды орта параметрлерінен барлық қадамдарды қайталау қажет болады. Немесе осы қадамдардың барлығын толығымен қайталаңыз.
PostgreSQL орнату және конфигурациялау
- Postgres бағдарламасының алдыңғы нұсқасын жою
brew uninstall --force postgresql
- Барлық Postgres файлдарын жойыңыз
rm -rf /usr/local/var/postgres
- Homebrew көмегімен Postgres орнату
brew install postgres
- Homebrew көмегімен PostGIS орнату
brew install postgis
- PostgreSQL серверін іске қосыңыз. Бұл пәрменді сайт жасаған сайын іске қосу қажет болуы мүмкін.
pg_ctl -D /usr/local/var/postgres басталады
- Жоба деректер қорын құру. Осы қадамдардың көпшілігі операциялық жүйемен жұмыс істейтін машинада Django орнату туралы ең бірінші мақалада қарастырылды.
psql postgres ДЕРЕКТЕР ҚОРЫН ЖАСАУ менің жобам; ПАЙДАЛАНУШЫ myprojectuser 'құпиясөз' ҚҰПИЯ СӨЗІМЕН ЖАСАУ; РОЛДЫ ӨЗГЕРТУ myprojectuser client_encoding 'utf8' ОРНАТУ; myprojectuser РӨЛІН ӨЗГЕРТУ default_transaction_isolation ОРНАТУ "орындалды"; РӨЛДІ ӨЗГЕРТУ myprojectuser уақыт белдеуін «UTC» ОРНАТУ; myprojectuser үшін myproject ДЕРЕКТЕР БАЗАСЫНДА БАРЛЫҚ АРТЫҚШЫЛЫҚТАРДЫ БЕРУ; \q
Nginx орнатыңыз және конфигурациялаңыз.
Мен Nginx-ті статикалық мазмұнды тарату үшін пайдаланамын, сондықтан біз Nginx-ті әзірлеуші машинаға орнатамыз.
brew install nginx sudo brew services start nginx
Nginx конфигурациялануда
Осы кезде Nginx серверін орнату керек. Неліктен nginx.conf файлын өңдеу керек, сонымен қатар сервер каталогында сервер параметрлері файлын жасау керек.
nano /usr/local/etc/nginx/nginx.conf
Файлдың мазмұнын жойып, келесі ақпаратты қосыңыз.
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; include servers/*; }
Содан кейін менің жобам файлын жасаңыз
touch /usr/local/etc/nginx/servers/myproject
Және осыған ұқсас мазмұнды қосыңыз.
server { listen 80; server_name 111.222.333.44; # здесь прописать или IP-адрес или доменное имя сервера location /static/ { root /Users/<user>/myprojectenv/myproject/myproject/; expires 30d; } location /media/ { root /Users/<user>/myprojectenv/myproject/myproject/; expires 30d; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Содан кейін Nginx серверін қайта іске қосыңыз
sudo brew services restart nginx
Қорытынды
Содан кейін дерекқорды тасымалдауды, collectstatic арқылы статикалық файлдарды жинауды және жобаңызға қажет басқа процедураларды ұмытпаңыз.
Django үшін Timeweb VDS-server ұсынамын.