在 Hetzner 的虚拟主机或托管服务器上运行 Django 应用程序

0 股票
0
0
0
0

介绍

在本教程中,我们将学习如何在 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 应用程序部署在托管操作系统上。.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

您可能也喜欢