Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
сайты:настройка_django_python3_uwsgi [2017.05.25 13:21] – admin | сайты:настройка_django_python3_uwsgi [2024.01.29 11:11] (текущий) – feser | ||
---|---|---|---|
Строка 2: | Строка 2: | ||
===== Введение ===== | ===== Введение ===== | ||
- | * python 3.5 из репозитория [[https:// | ||
* python с виртуальным окружением | * python с виртуальным окружением | ||
* проекты поднимаются из-под uwsgi | * проекты поднимаются из-под uwsgi | ||
- | * uwsgi стандартный из Centos | + | * uwsgi стандартный из Debian 12 |
- | * написано по мотивам [[https:// | + | |
+ | ===== Ставим uwsgi из репозитория ===== | ||
- | <code - php.ini> | + | apt install |
- | + | ||
- | post_max_size=20M | + | |
- | upload_max_filesize=20M | + | |
- | </ | + | |
- | + | ||
- | ===== Установка python 3.5 на Centos 7.x ===== | + | |
- | + | ||
- | <code bash> | + | |
- | yum install | + | |
- | yum install python35u python35u-pip | + | |
- | + | ||
- | pip3.5 install virtualenv | + | |
- | virtualenv -p python3.5 env | + | |
- | source env/ | + | |
- | pip install django | + | |
- | django-admin startproject mysite . | + | |
- | python manage.py migrate | + | |
- | </ | + | |
- | ===== Ставим uwsgi глобально ===== | + | |
- | + | ||
- | <code bash> | + | |
- | deactivate | + | |
- | + | ||
- | yum install uwsgi uwsgi-logger-file uwsgi-plugin-python35u | + | |
- | usermod -a -G uwsgi nginx | + | |
- | + | ||
- | </ | + | |
===== Конфигурационные файлы ===== | ===== Конфигурационные файлы ===== | ||
- | <code - / | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | + | <code bash /etc/uwsgi/apps-available/myprodject.ini> |
- | uwsgi_param | + | |
- | uwsgi_param | + | |
- | uwsgi_param | + | |
- | uwsgi_param | + | |
- | uwsgi_param | + | |
- | + | ||
- | uwsgi_param | + | |
- | uwsgi_param | + | |
- | uwsgi_param | + | |
- | uwsgi_param | + | |
- | </ | + | |
- | + | ||
- | <code bash /home/user/web/www.example.net/ | + | |
- | # | + | |
[uwsgi] | [uwsgi] | ||
+ | plugins | ||
+ | virtualenv | ||
+ | chdir = / | ||
+ | env = DJANGO_SETTINGS_MODULE=myprodject.settings | ||
+ | module | ||
+ | py-autoreload = 1 | ||
- | # Настройки, | ||
- | # Корневая папка проекта (полный путь) | ||
- | chdir = / | ||
- | # Django wsgi файл | ||
- | module | ||
- | # полный путь к виртуальному окружению | ||
- | home = / | ||
- | |||
- | # общие настройки | ||
- | # master | ||
- | master | ||
- | # максимальное количество процессов | ||
- | processes | ||
- | # полный путь к файлу сокета | ||
- | socket | ||
- | # права доступа к файлу сокета | ||
- | | ||
- | # очищать окружение от служебных файлов uwsgi по завершению | ||
- | vacuum | ||
- | |||
- | logger = file:/ | ||
- | |||
- | plugins = python35u, | ||
</ | </ | ||
- | == Чтобы uwsgi смог загрузить настройки вассалов == | + | <code - /etc/logrotate.d/uwsgi> |
- | <code> | + | "/var/log/uwsgi/app/*.log" { |
- | chown uwsgi: mysite_uwsgi.ini | + | |
- | </ | + | daily |
- | + | | |
- | == Ссылки для каждого вассала == | + | |
- | ln -s / | + | |
- | + | | |
- | ===== Финальные настройки приложения ===== | + | |
- | добавить имя хоста в секцию ALLOWED_HOSTS в файле settings.py | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Дополнение к VestaCP ===== | + | |
- | + | ||
- | == Apache не используется для него создадим пустой файл-шаболон с переводом строки == | + | |
- | <code - /usr/local/vesta/data/templates/ | + | |
- | + | ||
- | + | ||
- | </ | + | |
- | + | ||
- | == Nginx - шаблоны == | + | |
- | <code - / | + | |
- | + | ||
- | upstream django_%domain_idn% { | + | |
- | server unix:// | + | |
} | } | ||
- | # конфигурация веб-сервера | ||
- | server { | ||
- | listen | ||
- | server_name | ||
- | charset | ||
- | |||
- | error_log | ||
- | access_log | ||
- | |||
- | # максимальный размер загружаемых на сервер данных | ||
- | client_max_body_size 75M; | ||
- | |||
- | # обслуживание медиа файлов и статики | ||
- | location / | ||
- | alias %home%/ | ||
- | } | ||
- | |||
- | location /static { | ||
- | alias %home%/ | ||
- | } | ||
- | |||
- | |||
- | location ~ /\.ht {return 404;} | ||
- | location ~ / | ||
- | location ~ / | ||
- | location ~ / | ||
- | location ~ / | ||
- | |||
- | |||
- | |||
- | # Остальные запросы перенаправляются в Django приложение | ||
- | location / { | ||
- | uwsgi_pass | ||
- | include | ||
- | } | ||
- | } | ||
</ | </ | ||
- | <code - / | + | ===== Финальные настройки Django приложения ===== |
- | # | + | добавить имя хоста в секцию ALLOWED_HOSTS в файле settings.py |
- | # Changing public_html permission | + | |
- | user=" | + | |
- | domain=" | + | |
- | ip=" | + | |
- | home_dir=" | + | |
- | docroot=" | + | |
- | chmod 755 $docroot | ||
- | domain_dir=$home_dir/ | ||
- | |||
- | # | ||
- | cd $domain_dir | ||
- | |||
- | virtualenv -p python3.5 env | ||
- | source env/ | ||
- | pip install django | ||
- | |||
- | mkdir mysite | ||
- | |||
- | django-admin startproject mysite mysite | ||
- | python3.5 mysite/ | ||
- | |||
- | mkdir media | ||
- | mkdir static | ||
- | |||
- | |||
- | text=' | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | |||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | |||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | uwsgi_param | ||
- | |||
- | echo " | ||
- | |||
- | text1=" | ||
- | [uwsgi] | ||
- | |||
- | chdir = $domain_dir/ | ||
- | # Django wsgi файл | ||
- | module | ||
- | # полный путь к виртуальному окружению | ||
- | home = $domain_dir/ | ||
- | |||
- | # общие настройки | ||
- | # master | ||
- | master | ||
- | # максимальное количество процессов | ||
- | processes | ||
- | # полный путь к файлу сокета | ||
- | socket | ||
- | # права доступа к файлу сокета | ||
- | | ||
- | # очищать окружение от служебных файлов uwsgi по завершению | ||
- | | ||
- | |||
- | logger = file: | ||
- | plugins = python35u, | ||
- | " | ||
- | |||
- | echo " | ||
- | |||
- | chown uwsgi: $home_dir/ | ||
- | ln -s $home_dir/ | ||
- | |||
- | deactivate | ||
- | |||
- | exit 0 | ||
- | </ | ||
- | |||
- | == Пакет для Django сайта == | ||
- | <code - / | ||
- | WEB_TEMPLATE=' | ||
- | BACKEND_TEMPLATE= | ||
- | PROXY_TEMPLATE=' | ||
- | DNS_TEMPLATE=' | ||
- | WEB_DOMAINS=' | ||
- | WEB_ALIASES=' | ||
- | DNS_DOMAINS=' | ||
- | DNS_RECORDS=' | ||
- | MAIL_DOMAINS=' | ||
- | MAIL_ACCOUNTS=' | ||
- | DATABASES=' | ||
- | CRON_JOBS=' | ||
- | DISK_QUOTA=' | ||
- | BANDWIDTH=' | ||
- | NS=' | ||
- | SHELL=' | ||
- | BACKUPS=' | ||
- | TIME=' | ||
- | DATE=' | ||
- | </ | ||