Для установки Django с MariaDB и настройки веб-сервера Nginx (с Gunicorn или OpenLiteSpeed) на VPS с Ubuntu 20.04, следуйте пошаговой инструкции ниже. Я также постараюсь предоставить некоторые советы и готовые команды, которые могут помочь избежать ошибок.
### Шаг 1: Установка необходимых пакетов
```bash
sudo apt update
sudo apt upgrade -y
sudo apt install python3 python3-pip python3-venv nginx mariadb-server libmariadb-dev -y
```
### Шаг 2: Настройка базы данных MariaDB
1. Запустите MySQL (MariaDB):
```bash
sudo systemctl start mariadb
```
2. Настройте базу данных:
```bash
sudo mysql_secure_installation
```
3. Создайте базу данных и пользователя для вашего проекта Django:
```bash
sudo mysql -u root -p
```
Затем введите следующие команды в MySQL:
```sql
CREATE DATABASE myprojectdb;
CREATE USER 'myprojectuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON myprojectdb.* TO 'myprojectuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
### Шаг 3: Установка и настройка Django
1. Создайте виртуальное окружение и активируйте его:
```bash
mkdir ~/myproject
cd ~/myproject
python3 -m venv venv
source venv/bin/activate
```
2. Установите Django и другие необходимые пакеты:
```bash
pip install django mysqlclient gunicorn
```
3. Создайте проект Django:
```bash
django-admin startproject myproject .
```
4. Измените файл `settings.py`, чтобы подключиться к вашей базе данных:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myprojectdb',
'USER': 'myprojectuser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
```
5. Примените миграции и создайте суперпользователя:
```bash
python manage.py migrate
python manage.py createsuperuser
```
### Шаг 4: Настройка Gunicorn
1. Запустите Gunicorn:
```bash
gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
```
### Шаг 5: Настройка Nginx
1. Создайте файл конфигурации для вашего проекта:
```bash
sudo nano /etc/nginx/sites-available/myproject
```
Вставьте следующую конфигурацию (обновите пути):
```
server {
listen 80;
server_name your_domain_or_IP;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /path/to/your/project;
}
location / {
include proxy_params;
proxy_pass http://unix:/path/to/your/project/myproject.sock;
}
}
```
2. Активируйте конфигурацию и перезапустите Nginx:
```bash
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
```
### Шаг 6: Настройка Gunicorn как службы
1. Создайте файл службы для Gunicorn:
```bash
sudo nano /etc/systemd/system/gunicorn.service
```
Вставьте следующее:
```
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=your_user
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/your/project/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/path/to/your/project/myproject.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
```
2. Запустите и активируйте службу:
```bash
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
```
### Советы по устранению неполадок:
- Проверьте журналы ошибок Nginx и Gunicorn, если что-то не работает:
```bash