如何在托管服务器上安装Django:完整分步指南
Django 是一个高级 Python Web 框架,旨在鼓励快速开发和简洁、务实的设计。它仍然是构建可扩展、安全和可维护 Web 应用程序的最受欢迎的选择之一——从简单的博客到复杂的企业平台。在本综合指南中,我们将引导您完成在托管服务器上安装 Django 所需的每一步,从准备 Linux 环境到运行您的第一个项目并为生产做准备。
为什么为您的 Web 应用程序选择 Django?
在深入安装过程之前,值得了解为什么 Django 继续主导 Python Web 开发领域:
- 开箱即用: Django 附带内置身份验证、管理面板、ORM、表单处理和安全功能。
- 可扩展性: Django 为 Instagram 和 Pinterest 等高流量平台提供支持。
- 安全优先设计: Django 默认防止常见漏洞,包括 SQL 注入、XSS、CSRF 和点击劫持。
- 快速开发: 其约定优于配置的理念让开发人员能够更快地交付功能。
- 庞大的生态系统: 数千个可重用的包和庞大的社区意味着几乎任何问题的解决方案都已存在。
要充分利用 Django,您需要一个可靠的服务器环境。VPS 托管计划为您提供 Django 应用程序所需的 root 访问权限、专用资源和灵活性。
先决条件
在开始安装过程之前,请确保您已准备好以下内容:
- 运行 Linux 发行版的托管服务器(推荐 Ubuntu 20.04/22.04 或 Debian)
- 具有 sudo 权限的服务器 SSH 访问权限
- Python 3.8 或更高版本(推荐 Python 3.10+)
pip(Python 的包管理器)已安装- 对 Linux 命令行的基本熟悉
> 专业提示:如果您运行生产 Django 应用程序,请避免使用共享托管环境。VPS 托管计划或专用服务器将为您的应用程序提供所需的控制和性能。
第 1 步:通过 SSH 连接到您的服务器
打开您的终端并建立与托管服务器的 SSH 连接:
ssh username@server_ip将 username 替换为您的实际系统用户名,将 server_ip 替换为您的服务器的公共 IP 地址。如果您使用自定义 SSH 端口或基于密钥的身份验证文件,请相应地调整命令:
ssh -i /path/to/your/key.pem username@server_ip连接后,您将拥有服务器的命令行界面,可以开始设置过程。
第 2 步:更新您的系统并安装 Python 和 pip
保持系统包最新是安全性和兼容性的关键第一步。
更新包索引
sudo apt update && sudo apt upgrade -y安装 Python 3 和 pip
大多数现代 Ubuntu 和 Debian 发行版都预装了 Python 3。首先验证您的 Python 版本:
python3 --version如果未安装 Python 3 或您需要 pip,请使用以下命令安装:
sudo apt install python3 python3-pip -y验证安装:
python3 --version
pip3 --version您应该看到版本号,确认两个工具都可用。
第 3 步:设置 Python 虚拟环境
使用虚拟环境不仅是推荐的——它被认为是每个 Python 项目的最佳实践。虚拟环境将您的项目依赖项与系统范围的 Python 安装以及同一服务器上的其他项目隔离开来,防止版本冲突并保持您的环境整洁。
安装 virtualenv
sudo pip3 install virtualenv或者,您可以使用 Python 的内置 venv 模块(在 Python 3.3+ 中可用):
sudo apt install python3-venv -y创建您的项目目录和虚拟环境
导航到您想要托管项目的目录,或创建一个新目录:
mkdir myproject
cd myproject现在在您的项目目录中创建虚拟环境:
virtualenv venv或者,使用内置的 venv 模块:
python3 -m venv venv激活虚拟环境
source venv/bin/activate激活后,您的命令提示符将更改以显示虚拟环境名称,例如:
(venv) username@server:~/myproject$虚拟环境处于活动状态时执行的所有 pip install 命令将仅在此隔离环境中安装包。要随时停用它,只需运行:
deactivate第 4 步:安装 Django
激活虚拟环境后,使用 pip 安装 Django:
pip install django要安装特定版本的 Django(推荐用于生产以确保兼容性):
pip install django==4.2验证安装:
django-admin --version您应该看到打印到终端的已安装 Django 版本号。
第 5 步:创建新的 Django 项目
使用 Django 的内置 django-admin 命令行工具来搭建新项目:
django-admin startproject myproject .> 注意:末尾的点 (.) 告诉 Django 在当前目录中创建项目文件,而不是创建嵌套子目录。这对于大多数部署来说是一个更简洁的结构。
您的项目目录现在将包含以下结构:
myproject/
├── manage.py
└── myproject/
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.pymanage.py— 用于与 Django 项目交互的命令行实用程序。settings.py— 项目的中央配置文件。urls.py— URL 路由配置。wsgi.py/asgi.py— WSGI 和 ASGI 兼容 Web 服务器的入口点。
第 6 步:配置数据库设置
打开 settings.py 文件以配置您的数据库连接:
nano myproject/settings.py默认:SQLite(仅限开发)
默认情况下,Django 配置为使用 SQLite,适合开发和测试,但不推荐用于生产:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}生产选项:PostgreSQL
PostgreSQL 是 Django 在生产中最常推荐的数据库。首先,安装所需的包:
sudo apt install postgresql postgresql-contrib libpq-dev -y
pip install psycopg2-binary然后更新 DATABASES 中的 settings.py 设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}生产选项:MySQL / MariaDB
如果您更喜欢 MySQL 或 MariaDB,请安装所需的适配器:
sudo apt install default-libmysqlclient-dev -y
pip install mysqlclient然后配置 DATABASES 设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
}
}配置 ALLOWED_HOSTS
在 settings.py 中,还要更新 ALLOWED_HOSTS 设置以包含您的服务器的 IP 地址或域名。这是 Django 在非调试模式下提供请求所必需的:
ALLOWED_HOSTS = ['your_server_ip', 'yourdomain.com', 'www.yourdomain.com']第 7 步:应用数据库迁移
Django 使用迁移系统来管理数据库架构更改。运行初始迁移以创建所有必要的数据库表:
python manage.py migrate您将看到列出每个正在应用的迁移的输出。成功的迁移如下所示:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
...创建超级用户(可选但推荐)
创建管理员帐户以访问 Django 的内置管理界面:
python manage.py createsuperuser系统将提示您输入用户名、电子邮件地址和密码。
第 8 步:运行 Django 开发服务器
您现在可以启动 Django 的内置开发服务器来验证您的安装:
python manage.py runserver 0.0.0.0:8000此命令将开发服务器绑定到端口 8000 上的所有可用网络接口。打开您的 Web 浏览器并导航到:
http://your_server_ip:8000您应该看到 Django 欢迎页面——一个火箭船,带有”安装成功!恭喜!”的消息
要访问管理面板,请导航到:
http://your_server_ip:8000/admin> 重要: Django 的内置开发服务器不适合生产。它是单线程的,性能不优化,缺乏安全加固。始终为实时部署使用生产级 Web 服务器。
第 9 步:为生产准备 Django(推荐)
对于生产部署,您需要配置适当的 Web 服务器堆栈。最常见和推荐的设置是 Nginx + Gunicorn。
安装 Gunicorn
激活虚拟环境后:
pip install gunicorn测试 Gunicorn 是否可以提供您的应用程序:
gunicorn --bind 0.0.0.0:8000 myproject.wsgi安装和配置 Nginx
sudo apt install nginx -y创建 Nginx 服务器块配置文件:
sudo nano /etc/nginx/sites-available/myproject添加以下配置:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username/myproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}启用配置并重启 Nginx:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx收集静态文件
使用静态文件目录更新 settings.py:
STATIC_ROOT = BASE_DIR / 'staticfiles'然后收集所有静态文件:
python manage.py collectstatic使用 SSL 保护您的应用程序
对于任何生产 Django 应用程序,HTTPS 是必不可少的。SSL 证书加密您的服务器和用户之间传输的数据,保护敏感信息,并且是现代浏览器信任指标所必需的。AlexHost 提供与您的托管环境无缝集成的 SSL 证书。
其他生产考虑因素
敏感设置的环境变量
永远不要在 SECRET_KEY、数据库密码或 API 密钥等敏感值硬编码在 settings.py 中。请改用环境变量:
pip install python-decouple在 settings.py 中:
from decouple import config
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)在生产中将 DEBUG 设置为 False
DEBUG = False在生产中使用 DEBUG = True 运行会向潜在攻击者公开详细的错误页面和敏感配置信息。
配置域名
如果您还没有为 Django 项目注册域名,通过 AlexHost 的域名注册可以轻松快速地将您的域名指向您的服务器,并包含完整的 DNS 管理。
为您的 Django 应用程序选择合适的托管
您选择的托管环境对您的 Django 应用程序的性能、可靠性和可扩展性有重大影响。以下是一个快速指南:
对于大多数进入生产的 Django 项目,VPS 托管计划提供了性能、控制和成本效益的理想平衡。您可以获得 root 访问权限、安装任何软件堆栈的能力以及共享托管无法提供的专用资源。
on All Hosting Services
