如何成功在Ubuntu 22.04服务器上安装和部署Django框架?

Ubuntu 22.04环境准备

在开始安装Django之前,确保您的Ubuntu 22.04系统已更新到最新版本。运行以下命令更新系统:

sudo apt update && sudo apt upgrade -y

安装Python和虚拟环境

Django是基于Python的框架,因此需要安装Python。Ubuntu 22.04默认已安装Python 3。创建虚拟环境以隔离项目依赖:


sudo apt install python3-venv
python3 -m venv django_env
source django_env/bin/activate

安装Django

激活虚拟环境后,使用pip安装Django:

pip install django

创建Django项目

使用Django的命令行工具创建新项目:


django-admin startproject myproject
cd myproject

配置数据库

Django默认使用SQLite数据库。如需使用PostgreSQL,安装必要的包:


sudo apt install postgresql postgresql-contrib
pip install psycopg2-binary

修改settings.py

编辑myproject/settings.py文件,更新数据库配置和允许的主机:


ALLOWED_HOSTS = ['your_server_ip', 'your_domain.com']

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'your_db_name',
        'USER': 'your_db_user',
        'PASSWORD': 'your_db_password',
        'HOST': 'localhost',
        'PORT': '',
    }
}

运行数据库迁移

应用数据库迁移:


python manage.py makemigrations
python manage.py migrate

创建超级用户

为Django管理界面创建超级用户:

python manage.py createsuperuser

配置静态文件

在settings.py中添加静态文件配置:


STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

安装Gunicorn

Gunicorn是推荐的生产环境WSGI服务器:

pip install gunicorn

配置Nginx

安装和配置Nginx作为反向代理:


sudo apt install nginx
sudo nano /etc/nginx/sites-available/myproject

添加以下配置:


server {
    listen 80;
    server_name your_domain.com;

    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:/run/gunicorn.sock;
    }
}

启动Gunicorn和Nginx

创建系统服务以管理Gunicorn:


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/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target

启动服务:


sudo systemctl start gunicorn
sudo systemctl enable gunicorn
sudo systemctl restart nginx

安全性配置

配置防火墙,只允许必要的端口:


sudo ufw allow 'Nginx Full'
sudo ufw enable

结语

完成以上步骤后,您的Django应用将在Ubuntu 22.04服务器上成功部署。定期更新系统和依赖包,确保应用的安全性和性能。通过这种配置,您的Django应用能够高效、安全地运行在生产环境中。

寰宇互联服务器4核4G云服务器1元/月,网络稳定、抗DDos、国际BGP、性能强劲,十年服务经验QQ:97295700 微信:huanidc

阅读剩余
THE END