Ubuntu 24 云服务器上部署网站_详细版_1

从零开始,在 Ubuntu 24 云服务器上部署一个支持登录和权限的网站,用 Python + Django 实现,适合新手跟着操作。

🔧 第一步:更新服务器并安装基础环境

请使用 SSH 登录你的 Ubuntu 24 云服务器(用 MobaXterm、Xshell 或终端),然后执行以下命令:

sudo apt update && sudo apt upgrade -y

✅ 安装 Python3、pip 和虚拟环境工具

sudo apt install python3 python3-pip python3-venv -y

📁 第二步:创建网站项目文件夹和虚拟环境

要在一个独立的目录中创建 Django 项目,并用虚拟环境管理依赖。

mkdir ~/mywebsite
cd ~/mywebsite
python3 -m venv venv
source venv/bin/activate

会看到前面有 (venv),说明虚拟环境启用了。

📦 第三步:安装 Django 和 Gunicorn

pip install django gunicorn

🚀 第四步:创建 Django 项目

pip install django gunicorn

注意最后的 . 表示在当前目录创建,不会多生成一层目录。

🧱 第五步:配置 Django 项目基本信息

编辑 myproject/settings.py,修改:

deactivate
cd ~/mywebsite
nano myproject/settings.py
1. 允许访问的域名/IP

找到这一行:

ALLOWED_HOSTS = []

改成你的服务器 IP 或域名,例如:

ALLOWED_HOSTS = ['123.123.123.123', 'yourdomain.com']

 如果你暂时没有绑定域名,可以只填服务器的公网 IP。

2. 设置静态文件路径

在文件最后添加:

Ctrl + _(就是 Ctrl 和下划线 _,其实是 Ctrl + Shift + -),再按 999 跳到文件底部。

STATIC_ROOT = BASE_DIR / 'staticfiles'

 这是为了后面部署时收集静态文件用的。

💾 保存文件并退出:

按下:

Ctrl + X

然后按:

Y 回车

 就保存并退出编辑器了。

🧮 第六步:初始化数据库 + 创建超级用户

在已经激活虚拟环境的前提下(命令行前面有 (venv)),在项目根目录执行以下命令:

python manage.py migrate
python manage.py createsuperuser

根据提示输入用户名、邮箱和密码。这个账号之后可以登录后台。

🧪 第七步:运行开发服务器测试

python manage.py runserver 0.0.0.0:8000

然后在浏览器中访问:

http://你的服务器IP:8000/

能看到 Django 的欢迎页面!🎉

第八步:创建登录系统和页面跳转功能

创建 Django App(叫 main)

在项目目录venv下运行

python3 manage.py startapp main

执行完后,你会看到项目目录下多了个 main/ 文件夹。

注册这个 App 到项目里

编辑 myproject/settings.py 文件:

nano myproject/settings.py

找到这一段(INSTALLED_APPS = [...]),在里面加上一行 'main',,如下:

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','main',  # 👈 加在这里
]

保存并退出(Ctrl + X → Y → 回车)。

配置 URL 路由跳转

编辑项目的总路由:

nano myproject/urls.py

改成这样(添加 include 并导入 main.urls):

from django.contrib import admin
from django.urls import path, include  # 加了 includeurlpatterns = [path('admin/', admin.site.urls),path('', include('main.urls')),  # 加这一行,表示把访问首页的请求交给 main 应用处理
]

保存退出。

main 添加自己的路由文件

新建文件:

nano main/urls.py

 输入以下内容(定义两个页面:主页和欢迎页):

from django.urls import path
from . import viewsurlpatterns = [path('', views.home, name='home'),path('welcome/', views.welcome, name='welcome'),
]

写两个视图函数(首页 + 欢迎页)

编辑:

nano main/views.py

填入如下内容:

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_requireddef home(request):if request.user.is_authenticated:return redirect('welcome')return render(request, 'home.html')@login_required
def welcome(request):return render(request, 'welcome.html')

添加 HTML 模板页面

1、创建模板文件夹:

mkdir -p main/templates

2、创建 home.html

nano main/templates/home.html

写入内容:

<h1>你好!欢迎来到网站首页</h1>
<a href="/admin/login/">去登录</a>

3、创建 welcome.html

nano main/templates/welcome.html

写入内容:

<h1>欢迎,{{ request.user.username }}!你已成功登录</h1>
<a href="/admin/logout/">退出登录</a>

重新启动服务器并访问

python manage.py runserver 0.0.0.0:8000

然后访问:

  • http://IP:8000/ 👉 首页,有一个“去登录”按钮

  • 点击“去登录” → http://你的IP:8000/admin/login/

  • 登录后会自动跳转到 /welcome/ 欢迎页

  • 可以点击“退出登录”来退出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/74509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机学习之定时器

定时器是用来定时的机器&#xff0c;是存在于STM32单片机中的一个外设。STM32一般总共有8个定时器&#xff0c;分别是2个高级定时器&#xff08;TIM1、TIM8&#xff09;&#xff0c;4个通用定时器&#xff08;TIM2、TIM3、TIM4、TIM5&#xff09;和2个基本定时器&#xff08;TI…

AIGC6——AI的哲学困境:主体性、认知边界与“天人智一“的再思考

引言&#xff1a;当机器开始"思考" 2023年&#xff0c;Google工程师Blake Lemoine声称对话AI LaMDA具有"自我意识"&#xff0c;引发轩然大波。这一事件将古老的哲学问题重新抛回公众视野&#xff1a;​**机器能否拥有主体性&#xff1f;**从东方"天人…

从内核到应用层:Linux缓冲机制与语言缓冲区的协同解析

系列文章目录 文章目录 系列文章目录前言一、缓冲区1.1 示例11.2 缓冲区的概念 二、缓冲区刷新方案三、缓冲区的作用及存储 前言 上篇我们介绍了&#xff0c;文件的重定向操作以及文件描述符的概念&#xff0c;今天我们再来学习一个和文件相关的知识-----------用户缓冲区。 在…

高通camx IOVA内存不足,导致10-15x持续拍照后,点击拍照键定屏无反应,过一会相机闪退

定屏闪退问题分析思路&#xff1a; 定屏问题如果是相机问题&#xff0c;一般会出现返帧&#xff0c;导致预览卡死。当然还有其他情况&#xff0c;我们先看返帧情况&#xff0c;发现request和result开始都正常&#xff0c;到12:53:05.443038就没有返帧了&#xff0c;定屏了。往…

AI知识补全(十五):AI可解释性与透明度是什么?

名人说&#xff1a;一笑出门去&#xff0c;千里落花风。——辛弃疾《水调歌头我饮不须劝》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;AI知识补全&#xff08;十四&#xff09;&#xff1a;零样本…

CentOS 7安装hyperscan

0x00 前言 HyperScan是一款由Intel开发的高性能正则表达式匹配库&#xff0c;专为需要快速处理大量数据流的应用场景而设计。它支持多平台运行&#xff0c;包括Linux、Windows和macOS等操作系统&#xff0c;并针对x86架构进行了优化&#xff0c;以提供卓越的性能表现。HyperSc…

机器学习的一百个概念(9)学习曲线

前言 本文隶属于专栏《机器学习的一百个概念》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索&…

macvlan 和 ipvlan 实现原理及设计案例详解

一、macvlan 实现原理 1. 核心概念 macvlan 允许在单个物理网络接口上创建多个虚拟网络接口&#xff0c;每个虚拟接口拥有 独立的 MAC 地址 和 IP 地址。工作模式&#xff1a; bridge 模式&#xff08;默认&#xff09;&#xff1a;虚拟接口之间可直接通信&#xff0c;类似交…

linux文件上传下载lrzsz

lrzsz 是一个在 Linux 系统中用于通过串行端口(如 ZMODEM、XMODEM、YMODEM 等协议)进行文件上传和下载的工具集。它通常用于在终端环境中通过串口或 SSH 连接传输文件。 安装 lrzsz 在大多数 Linux 发行版中,你可以使用包管理器来安装 lrzsz。 Debian/Ubuntu: sudo apt-ge…

单片机学习之SPI

物理层 串行全双工总线 需要四根线&#xff1a;SCLK&#xff08;时钟线&#xff09;&#xff0c;CS&#xff08;片选线&#xff09;、MOSI(主设备输出、从设备输入)&#xff0c;MISO&#xff08;主设备输入&#xff0c;从设备输出&#xff09;。 片选信号 片选信号CS是用来…

大模型应用初学指南

随着人工智能技术的快速发展&#xff0c;检索增强生成&#xff08;RAG&#xff09;作为一种结合检索与生成的创新技术&#xff0c;正在重新定义信息检索的方式&#xff0c;RAG 的核心原理及其在实际应用中的挑战与解决方案&#xff0c;通用大模型在知识局限性、幻觉问题和数据安…

docker-compose部署prometheus+grafana+node_exporter+alertmanager规则+邮件告警

目录 一.docker-compose文件 二.配置文件 三.文件层级关系&#xff0c;docker-compose和配置文件位于同级目录 四.node_exporter页面json文件 五.效果展示 prometheusalertmanager邮件告警 grafana面板效果 六.涉及离线包 一.docker-compose文件 [rootsulibao prometh…

AI设计再现新引擎,科技创新又添新动能——广东省首家行业AI设计工程中心获批成立

近期&#xff0c;大捷智能科技&#xff08;广东&#xff09;有限公司&#xff08;以下简称“大捷智能”&#xff09;凭借其在人工智能与智能制造领域的突出研发实力与创新科技成果&#xff0c;由广东省科技厅批准设立“广东省模具智能设计与智能制造工程技术研究中心”。 广东省…

【MongoDB + 向量搜索引擎】MongoDB Atlas 向量搜索 提供全托管解决方案

在代码审计项目中&#xff0c;MongoDB可以用于存储元数据和部分结构化信息&#xff0c;但要高效处理向量相似性搜索&#xff0c;需结合其他工具。以下是具体分析&#xff1a; 1. MongoDB 的适用场景 元数据存储&#xff1a; 存储代码片段的文件路径、行号、语言类型等结构化信…

基于ANSYS 概率设计和APDL编程的结构可靠性设计分析

01 可靠度基本理论 结构的极限状态&#xff1a;整个结构的一部分超过某一特定状态就不能满足设计规定的某一功能要求。结构的极限状态实质上是结构工作状态的一个阀值&#xff0c;如果工作状态超过这一阀值&#xff0c;则结构处于不安全、不耐久或不适用的状态&#xff1b;若工…

CyclicBarrier、Semaphore、CountDownLatch的区别,适用场景

CyclicBarrier、Semaphore 和 CountDownLatch 是 Java 并发包中用于线程协作的工具类&#xff0c;它们虽然都与线程同步相关&#xff0c;但设计目的和使用场景有显著差异。以下是它们的核心区别和典型应用场景&#xff1a; 1. CountDownLatch 核心机制 一次性计数器&#xf…

新能源汽车测试中的信号调理模块:从原理到实战应用

摘要 信号调理模块&#xff08;Signal Conditioning Module, SCM&#xff09;是新能源汽车&#xff08;NEV&#xff09;测试系统中的关键环节&#xff0c;直接影响数据采集的精度与可靠性。本文面向HIL测试工程师、电机测试工程师及整车动力经济性测试工程师&#xff0c;系统性…

Qt5 Mac系统检查休眠

在开发跨平台应用程序时,有时候我们需要检测系统的状态,比如是否处于休眠或唤醒状态。Qt是一个强大的跨平台应用开发框架,支持多种操作系统,包括Windows、Linux、macOS等。在这个场景下,我们关注的是如何在Qt5.10中检测到系统是否休眠以及在Mac上实现这一功能。本文将深入…

RabbitMQ简单介绍和安装

RabbitMQ简单介绍 一.RabbitMQ介绍二.RabbitMQ的作用1.异步解耦2.流量削峰3.消息分发4.延迟通知 三.RabbitMQ安装&#xff08;Ubuntu&#xff09;1.先安装Erlang2.安装RabbitMQ3.安装RabbitMQ的管理界面4.创建虚拟机5.端口号信息 四.工作原理图 一.RabbitMQ介绍 RabbitMQ 是一款…

汇编学习之《call, return指令》

call 指令 call 指令就是调用函数的执行&#xff0c;不过它也是几个指令的组合 第一步通过jmp 函数地址的方式先跳转到函数 第二步通过push 指令将函数地址指令额下一行的指令的地址压入栈中。 我们来验证下 首先打开OllyDbg,导入你的程序&#xff0c;找到一个call 函数&…