介绍
在本教程中,我们将学习如何在 Hetzner 的虚拟主机或托管服务器上运行 Python Django 应用程序。Django 是一个 Python Web 框架。默认情况下,该框架运行在 WSGI(Web 服务器-应用程序接口)上,但托管的 Apache 服务器上不提供 mod_wsgi 模块。不过,有几种方法可以将 WSGI 转换为其他兼容的接口。.
先决条件
- 支持 SSH 的虚拟主机(版本 9 或更高版本)或已启用 SSH 访问的托管服务器。.
步骤 1 – 安装依赖项
步骤 1.1 – 安装并激活 virtualenv
pip3 install --break-system-packages virtualenv mkdir /usr/home/holu/virtualenvs python3 -m virtualenv /usr/home/holu/virtualenvs/example_com . /usr/home/holu/virtualenvs/example_com/bin/activate步骤 1.2 – 安装 Django
pip install django步骤 1.3 – 安装 Flup(可选,FastCGI 需要)
pip install flup步骤 2 – 创建和配置 Django 项目
步骤 2.1 – 项目启动
mkdir /usr/home/holu/djangoprojects env -C "/usr/home/holu/djangoprojects" django-admin startproject example_com步骤 2.2 – 项目配置
所有请求的域名都指向该变量 允许的主机 添加使其更易于访问。.
vim /home/holu/djangoprojects/example_com/example_com/settings.py击 我 进入“导入模式”,添加所有需要的域名:
ALLOWED_HOSTS = ['example.com']击 Esc键 返回“命令模式”并 :wq 按回车键保存并退出。.
步骤 3 – 准备 Web 服务器文档根目录
创建一个空的网站目录,并在 konsoleH 中更改文档根目录。.
mkdir -p /usr/home/holu/public_html/example_com选项 1 – FastCGI
创建 .htaccess 文件
vim /usr/home/holu/public_html/example_com/.htaccess击 我 进入“导入模式”,输入以下内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.fcgi/$1 [QSA,L]
</IfModule>击 Esc键 返回“命令模式”并 :wq 按回车键保存并退出。.
创建 .fcgi 脚本
vim /usr/home/holu/public_html/example_com/djangoapp.fcgi#!/usr/home/holu/virtualenvs/example_com/bin/python
import sys
import os
import django
from flup.server.fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
sys.path.append("/usr/home/holu/djangoprojects/example_com")
os.environ['DJANGO_SETTINGS_MODULE']="example_com.settings"
django.setup(set_prefix=False)
WSGIServer(WSGIHandler()).run()设置所有者的执行权限:
chmod 744 /usr/home/holu/public_html/example_com/djangoapp.fcgi方案二——计算机生成图像
创建 .htaccess 文件
vim /usr/home/holu/public_html/example_com/.htaccess击 我 进入“导入模式”,输入以下内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.cgi/$1 [QSA,L]
</IfModule>击 Esc键 返回“命令模式”并 :wq 按回车键保存并退出。.
创建 .cgi 脚本
vim /usr/home/holu/public_html/example_com/djangoapp.cgi#!/usr/home/holu/virtualenvs/example_com/bin/python
import sys
import os
import django
import wsgiref.handlers
from django.core.handlers.wsgi import WSGIHandler
sys.path.append("/usr/home/holu/djangoprojects/example_com")
os.environ['DJANGO_SETTINGS_MODULE']="example_com.settings"
django.setup(set_prefix=False)
wsgiref.handlers.CGIHandler().run(WSGIHandler())设置所有者的执行权限:
chmod 744 /usr/home/holu/public_html/example_com/djangoapp.cgi第四步——测试
要进行测试,请访问您的域名。您应该会看到类似下图的内容:
结果
现在您可以将 Django 应用程序部署在托管操作系统上。.










