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应用能够高效、安全地运行在生产环境中。