Настройка Ubuntu server. Часть 5 (Django)
Установка зависимостей для Python/Django Чтобы собрать mysqlclient (или использовать другие драйверы), нужны заголовочные файлы:
sudo apt install -y python3-dev libmariadb-dev pkg-config default-libmysqlclient-dev python3-pip python3-venv -y
- Клонирование проекта
cd /var/www sudo git clone https://github.com/yourusername/yourproject.git sudo chown -R $USER:$USER yourproject cd yourproject - Виртуальное окружение и зависимости
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt pip install gunicorn mysqlclient python manage.py migrate python manage.py collectstatic python manage.py createsuperuser # если нужно - Systemd-сервис для Gunicorn
sudo nano /etc/systemd/system/gunicorn.service[Unit] Description=gunicorn daemon for Django After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/var/www/yourproject ExecStart=/var/www/yourproject/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock yourproject.wsgi:application [Install] WantedBy=multi-user.target
Конфиг Nginxsudo chown -R www-data:www-data /var/www/yourproject sudo systemctl daemon-reload sudo systemctl enable --now gunicornsudo nano /etc/nginx/sites-available/yourproject
Активируй сайт:server { listen 80; server_name mysite.com www.mysite.com; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { alias /var/www/yourproject/staticfiles/; } location /media/ { alias /var/www/yourproject/media/; } location / { include proxy_params; proxy_pass http://unix:/run/gunicorn.sock; } }sudo ln -s /etc/nginx/sites-available/yourproject /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx