Пропоную розглянути процес встановлення та налаштування проекту Django на Mac OS X на основі існуючого проекту.
Деякі кроки будуть аналогічні до тих, які вже були виконані в статті з установки Django для Ubuntu .
Налаштування віртуального середовища
- Встановлення python 3
brew встановити python3
- InstУстановкаall pip
sudo easy_install pip
- Встановлення virtualenv та створення віртуального середовища
sudo pip3 встановити virtualenv
- Налаштування віртуального середовища для проекту
virtualenv project_env --python=python3
- Перейдіть до каталогу віртуального середовища проекту та клонуйте репозиторій.
CD project_env клон git git@bitbucket.org:MyUser/project.git
- Ми також клонуємо підмодулі, якщо ваш проект використовує підмодуль git.
CD проект git підмодуль init Оновлення підмодуля git
- Я сподіваюся, що ви використовуєте файл requirements.txt, тому що настав час встановити всі необхідні пакети в проект
pip install -r requirements.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
Перевірте версію Python, яка зараз використовується у Mac OS X.
python --version
Після цього вам потрібно буде повторити всі кроки з налаштувань віртуального оточення, починаючи з кроку 4, якщо ви вже встановили virtualenv. Або повністю повторити всі ці кроки.
Встановіть та налаштуйте PostgreSQL
- Видалення попередньої версії Postgres
brew uninstall --force postgresql
- Видалити всі файли Postgres
rm -rf /usr/local/var/postgres
- Встановлення Postgres за допомогою Homebrew
brew встановити postgres
- Установка PostGIS за допомогою Homebrew
brew встановити postgis
- Запустіть сервер PostgreSQL. Вам може знадобитися запускати цю команду, коли ви розробляєте сайт.
pg_ctl -D /usr/local/var/postgres start
- Створення бази даних проекту. Багато з цих кроків були описані в першій статті з налаштування Django на комп'ютері під керуванням ОС.
psql postgres СТВОРИТИ БАЗУ ДАНИХ myproject; CREATE USER myprojectuser WITH PASSWORD 'пароль'; ЗМІНИТИ РОЛЬ myprojectuser ВСТАНОВИТИ client_encoding НА 'utf8'; ЗМІНИТИ РОЛЬ myprojectuser ВСТАНОВИТИ default_transaction_isolation НА 'прочитане здійснено'; ЗМІНИТИ РОЛЬ myprojectuser ВСТАНОВИТИ часовий пояс НА 'UTC'; НАДАТИ ВСІ ПРИВІЛЕЇ НА БАЗУ ДАНИХ myproject ДЛЯ myprojectuser; \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/*; }
Потім створіть файл myproject
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-сервер .