最悉心的指导教程——阿里云创建ECS实例教程+Vue+Django前后端的服务器部署(通过宝塔面板)

article/2025/8/4 2:28:40

各位看官老爷们,点击关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!

阿里云创建ECS实例教程

注意:

阿里云有300元额度的免费适用期哟

白嫖~~~~

注册了阿里云账户后,进入上图页面,点击控制台

注意:宝塔上的Python项目只支持Centos操作系统,其他任何系统都不行

博主有两天的时间都是使用的Ubuntu,太心酸了,

以上操作结束后实例创建成功,先重新设置密码!!

以上实例创建成功后:就可以来进行以下操作啦~~~

Vue+Django前后端的服务器部署(通过宝塔面板)

1. 电脑本地配置前后端相关代码(前端静态资源托管到后端Django中)

1.1 前端部分:

主要操作文件:vite.config.js和axios.js

1.vite.config.js

server: {proxy: {'/api': {// target: 'http://127.0.0.1:8000',target: 'http://47.109.155.116:8000',changeOrigin: true,// rewrite: (path) => path.replace(/^\/api/, '')}}},

该文件中只需要注意server中的proxy选项中的target属性:设置成服务器的公网IP:端口号即可

2.axios.js

const instance = axios.create({// baseURL: 'http://127.0.0.1:8000/api/',baseURL: 'http://47.109.155.116:8000/api/',timeout: 5000,
})

该文件中只需要注意baseURL,同样只需要替换成公网IP:8000

将以上相关代码修改过后:

如果使用的是npm管理控制的

那么久直接使用:

npm run build

生成dist文件夹

1.2 后端部分:

主要操作文件:settings.py和urls.py文件

1.settings.py文件:

将所有的localhost地址全部改为服务器ip地址
​
然后:
在TEMPLATES中添加:
"DIRS":[os.path.join(BASE_DIR, 'frontend/dist')],
​
DATABASE里面的相应信息改成服务器中的宝塔面板中创建的数据库
​
添加一个:
STATICFILES_DIRS = [os.path.join(BASE_DIR, "frontend/dist/static"),
]
STATIC_ROOT = os.path.join(BASE_DIR, "static")
​
注意:将上文中的前端的dist文件夹复制到Django文件夹中的新建文件夹“frontend”下面

2.urls.py文件:

urlpatterns = [.......# 添加前端路由 - 匹配所有路径到Vue入口文件re_path(r'^.*$', TemplateView.as_view(template_name='index.html')),]
# 开发环境静态文件服务
if settings.DEBUG:urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

以上的完成以后,就运行以下命令:

pip freeze > requirements.txt (导出该Django项目的依赖包,用于在云端服务器上的终端中运行安装)
python manage.py collectstatic

命令的用处就是:将前端的静态资源搜集起来放置于Django项目文件夹中,这样我们就可以只上传——Django项目到宝塔面板上了

2. 远程连接:安装宝塔面板

2.1 服务器操作:

点击“远程连接”登录进去终端

注意:如果你不知道自己的密码就点击——重置密码即可

以上就是登录进去后的界面:

接下来我们就进行——安装“宝塔面板”的操作:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

如上图所示:

会弹出宝塔面板账户登录信息。

我们通过所给的外网面板地址来登录宝塔面板

2.1宝塔面板操作:准备事项

  1. 登录进入宝塔面板后:

    首先先下载相关插件:



    这里需要注意一点的是:必须要下载Mysql后才能下载phpMyadmin插件。
  2. 注意版本的搭配:我这里下载的是Mysql8.0版本以及Python3.9.9

  3. 添加数据库:

    值得注意的是:这里有一个非常非常重要的点——下图红圈中的root密码

    可以通过红圈中的选项来更改密码:

    因为最开始的root密码是随机生成的(后面的终端操作中登录mysql时需要密码就是这个你修改后的root密码

    我就是在这里卡了一天——最后才找到这个的!!!!!!!!!!

  4. 添加站点

    添加一个PHP项目:其中的域名——如果你没有申请域名的话你就直接输入你的ECS实例(公网IP地址即可),同时在这里选择穿件相应版本的数据库

  5. 点击文件功能

    在图片中的位置(公网IP目录下添加你的Django工程文件)

3. 将托管后的Django代码工程上传到宝塔页面的“文件”栏目中

3.1上传文件

4. 配置Python环境

4.1 ”Python项目“中的引导安装

如果你是第一次点击网站中的Python项目——那么你就可以直接通过弹出的安装Python按钮,选择你对应需要的版本安装即可。

4.1.1 添加Python项目

项目名称:随便取名

Python环境:刚刚安装的那个

启动方式:命令行启动(我采用的就是命令行启动——因为我这个项目仅仅还在测试阶段,后续会更新上线部署方式的部署方法,点击关注我,不迷路哟

项目路径:选择刚刚上传的项目的“父级目录(根目录)

启动命令(开发模式):

python manage.py runserver 0.0.0.0:8000

项目初始化命令:

通常都是

python3 manage.py makemigration
python3 manage.py migrate

4.2 “Python环境”——手动安装

mkdir local
cd local
wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz
tar -xzf Python-3.9.9.tgz
​
yum groupinstall "Development Tools" -y
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel \
yum install sqlite-devel readline-devel tk-devel gdbm-devel db4-devel \
yum install libpcap-devel xz-devel libffi-devel -y
​
make distclean
​
cd Python-3.9.9
./configure --prefix=/usr/local/python3.9
./configure --enable-optimizations
make -j4
make altinstall
ln -s /usr/local/python3.9/bin/python3.9 /usr/bin/python3.9
​
python3.9 --version
​
cd /www/wwwroot/47.109.155.116/Security_System_project
python3.9 -m venv vsvenv
source vsvenv/bin/activate
​
pip3 install -r requirements.txt(如果遇到Mysql的问题:多半是版本不匹配)
出现问题:
# 查找 mysql.h 和 libmysqlclient.so
find / -name 'mysql.h' -type f 2>/dev/null
find / -name 'libmysqlclient.so*' -type f 2>/dev/null
找到具体文件位置后就可以设置具体的环境变量了
# 设置环境变量
export MYSQLCLIENT_CFLAGS="-I/usr/include/mysql"
export MYSQLCLIENT_LDFLAGS="-L/www/server/mysql/lib -lmysqlclient"
查看具体的环境变量值
echo $MYSQLCLIENT_CFLAGS
echo $MYSQLCLIENT_LDFLAGS
​
​
​
那就:
安装Mysql8.0的社区版本:
# 添加 MySQL 官方 Yum 源
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
rpm -Uvh mysql80-community-release-el7-5.noarch.rpm
​
# 安装开发包
yum install mysql-community-devel
​
再次确认 /usr/include/mysql/ 里存在如下宏的头文件:
grep MYSQL_OPT_SSL_KEY /usr/include/mysql/mysql.h
​
export MYSQLCLIENT_CFLAGS="-I/usr/include/mysql"
export MYSQLCLIENT_LDFLAGS="-L/usr/lib64/mysql -lmysqlclient"
pip install mysqlclient==2.2.7
​
​
pip install django
然后安装依赖requierments.js:
pip install requierments.js
python3 manage.py makemigrations
​
pip install django-cors-headers
pip install djangorestframework
pip install djangorestframework-simplejwt
​
python3 manage.py makemigrations
​
​
mkdir /home/hkc
chown hkc:hkc /home/hkc
chmod 700 /home/hkc
# Step 1: 创建 mysql 用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
​
# Step 2: 修改权限
chown -R mysql:mysql /www/server/mysql
​
# Step 3: 切换用户启动(推荐)
su - mysql
/www/server/mysql/bin/mysqld --defaults-file=/www/server/mysql/my.cnf &
​
# 或者 root 用户下强制启动(不推荐)
/www/server/mysql/bin/mysqld --defaults-file=/www/server/mysql/my.cnf --user=mysql &
​
python3 manage.py migrate
python3 manage.py runserver 0.0.0.0:8000

5. 数据库相关

点击以上的“终端”,进入Python项目终端执行以下操作:

mysqladmin -u root -p ping(确认mysql是否启动)
​
-- 登录数据库:
mysql -u root -p
​
-- 查看有哪些用户及主机:
SELECT user, host FROM mysql.user;
​
-- 查看某用户的权限:
SHOW GRANTS FOR 'Django_user'@'localhost';
​
-- 如果权限不足可授予权限:
GRANT ALL PRIVILEGES ON your_database_name.* TO 'Django_user'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
​

通过命令:

mysql --help | grep "Default options" -A 1
mysql --print-defaults(Mysql实际加载的是哪个配置文件)
查看文件内容:
cat /etc/my.cnf
然后完善[mysqld]部分的相应内容:

可以知道配置文件my.cnf的位置:

便于我们查看配置文件总是否配置正确:

如果没有以下内容:

# 允许远程连接(注释掉则允许所有IP)
bind-address = 0.0.0.0

就要添加进入该配置文件中

注意:我们不仅需要再服务器的“安全组“中放行相应的端口更需要在宝塔界面的终端的防火墙中放行端口

上图中:端口8000就放行不了,需要时8000/8000才行

放行端口命令:

首先:检查防火墙开放端口
firewall-cmd --list-ports
​
开放新端口:
sudo firewall-cmd --add-port=8001/tcp --permanent
sudo firewall-cmd --reload

如果放行成功的话,会显示success的。

补充一点:

1. 找出占用端口的进程

sudo lsof -i :8000

sudo netstat -tulnp | grep :8000

2. 终止占用端口的进程

找到 PID 后,使用:

sudo kill -9 [PID]
sudo kill -9 12345

3. 尝试使用不同端口

python manage.py runserver 0.0.0.0:5173 --insecure

6. 以上所有步骤完成后

运行:

python manage.py collectstatic
​
python3 manage.py makemigration
​
python3 manage.py migrate
​
python manage.py runserver 0.0.0.0:8001 --insecure

文章有写的不当的地方,欢迎在评论区中指正修改。如果感觉文章实用对你有帮助,欢迎点赞收藏关注,你的点赞关注就是我动力,大家一起学习进步。

有不懂的可以在评论区里提出来哟,博主看见后会及时回答的。


http://www.hkcw.cn/article/YngmnkKPXV.shtml

相关文章

【Android】如何抓取 Android 设备的 UDP/TCP 数据包?

目录 前言理解抓包tcpdump 实时抓包Wireshark 解包抓包后的一些思考 前言 在真正接触 UDP/TCP 抓包之前,我一直以为这是一项高深莫测的技术。可当我们真正了解之后才发现,其实并没有那么复杂——不过如此。 所谓的大佬,往往只是掌握了你尚未…

VR看房系统,新生代看房新体验

VR看房系统的概念 虚拟现实(VirtualReality,VR)看房系统,是近年来随着科技进步在房地产行业中兴起的一种创新看房方式。看房系统利用先进的计算机技术模拟出一个三维环境,使用户能够身临其境地浏览和体验房源,无需亲自…

机器学习Day5-模型诊断

实现机器学习算法的技巧。当我们训练模型或使用模型时,发现预测误差很 大,可以考虑进行以下优化: (1)获取更多的训练样本 (2)使用更少的特征 (3)获取其他特征 &#xff…

STM32F103_Bootloader程序开发06 - IAP升级用的App.bin增加CRC32校验码,确保固件完整性,防止“变砖”

导言 《STM32F103_Bootloader程序开发05 - Keil修改生成文件的路径与文件名,自动生成bin格式文件》上一章节成功让Keil生成App.bin二进制文件,用于IAP升级。 为了保障IAP升级过程中的固件完整性,避免因损坏文件导致设备“变砖”,…

语言使用的国家概况统计

语言是文化的载体,也是沟通和协作的桥梁。随着全球化进程加快,了解主要语言的分布及其使用国家,对于数据分析师、产品经理、市场人员乃至技术开发者,都极为重要。本文将梳理全球几种主要语言(英语、法语、阿拉伯语、俄…

DeepSeek-R1-0528

深度思考能力强化​ DeepSeek-R1-0528 仍然使用 2024 年 12 月所发布的 DeepSeek V3 Base 模型作为基座,但在后训练过程中投入了更多算力,显著提升了模型的思维深度与推理能力。 更新后的 R1 模型在数学、编程与通用逻辑等多个基准测评中取得了当前国内…

MCU STM32搭配存储SD NAND(贴片式T卡)于智能皮电手环(Galvanic Skin Response, GSR 手环)的全方位评测

文章目录 卓越性能强化安全高效能效图形处理优势丰富集成特性模拟模块实时监控保障数据完整性提升安全性与可靠性测量原理采样率相关 在智能皮电手环及数据存储技术不断迭代的当下,主控 MCU STM32H750 与存储 SD NAND MKDV4GIL-AST 的强强联合,正引领行业…

处理知识库文件_编写powershell脚本文件_批量转换其他格式文件到pdf文件---人工智能工作笔记0249

最近在做部门知识库,选用的dify,作为rag的工具,但是经过多个对比,最后发现, 比较好用的是,纳米搜索,但是可惜纳米搜索无法在内网使用,无法把知识库放到本地,导致 有信息…

Java 基础 常见知识

基本数据类型 Java 中基本数据类型?对应的包装类?占多少字节? Java 中有 8 种基本数据类型: 6 种数字类型: 4 种整数类型:byte、short、int、long2 种浮点类型:float、double 1 种字符类型&a…

直播预告 | 聚焦芯必达|打造可靠高效的国产 MCU 与智能 SBC 汽车解决方案

随着汽车电子国产化快速推进,车规级 MCU 与 CAN/LIN SBC 作为车身控制的核心组件,正面临更高的安全与可靠性挑战。品佳集团将携手芯必达微电子,深入剖析国产 MCU/SBC/智能 SBC 的最新技术与应用,助力企业打造高性能、可量产的国产…

TF 卡 U1 与 U3 的核心差异解析:从速度标准到应用场景

在选购 TF 卡时,常常会看到 U1、U3 等标识,这些标识代表着不同的性能等级。最近不少客户询问 TF 卡 U1 和 U3 的区别,接下来将从多个维度为您详细解读,并通过对比图表直观呈现差异。 对比项目U1U3速度标准最低写入速度 10MB/s最低…

【Linux】vim编辑器

前言: 上文我们讲到了Linux中权限相关的指令【Linux】权限相关指令-CSDN博客 本文来讲解以下能让我们在Linux下编写代码的工具:vim 1.vim简单介绍 vim是Linux中一个较为常用的编辑器,也是Linux中上手难度最大的编辑器之一。有的同学可能知道v…

PKC6100A电流探头:攻克800V高压测试新利器

在新能源汽车行业快速发展的今天,电机控制器作为电动车辆的"大脑",其性能测试至关重要。然而,传统测试设备往往难以满足高压平台下的严苛测试需求。本文将为您揭秘普科科技PKC6100A电流探头如何帮助行业领先企业攻克测试难关。 一、…

【C++】STL详解(四)---Stack和Queue

文章目录 Stack定义方式使用方式 Queue定义方式使用方式 Stack Stack是一种容器&#xff0c;是基本的数据结构之一&#xff0c;特点是先进后出。 定义方式 方式一&#xff1a;普通定义方式 stack<int> st1;方式二&#xff1a; stack<int,vector<int>> …

换宽带ip地址会变吗?同一个宽带如何切换ip地址

在当今互联网时代&#xff0c;IP地址作为网络设备的"身份证"&#xff0c;其重要性不言而喻。许多用户在使用宽带时都会遇到这样的疑问&#xff1a;换宽带IP地址会变吗&#xff1f;同一个宽带如何切换IP地址&#xff1f;本文将深入探讨这一问题&#xff0c;帮助读者全…

WPF中一种使用Geometry图标的方法,用作制作图标按钮

1.去阿里巴巴矢量图标库或者哪里的图标库找到svg代码&#xff1a; 2.粘贴看一下&#xff1a; 3.摘取其中path属性&#xff0c;创建Geometry对象&#xff1a; 4.然后可以在按钮中使用&#xff1a; 感觉东西太多了&#xff0c;学不玩了

第二代IndoorLink头戴式无线讲解器,远距+动感,更好用了

在讲解器市场中&#xff0c;IndoorLink&#xff08;音德聆客&#xff09;头戴式无线讲解器一直具有鲜明的辨识度&#xff0c;张扬个性、动感自由的特点&#xff0c;受到很多用户欢迎。经过近一年的精细打磨后&#xff0c;IndoorLink头戴式迎来了全新升级。 日前&#xff0c;深…

PYTHON通过VOSK实现离线听写支持WINDOWSLinux_X86架构

在当今人工智能快速发展的时代&#xff0c;语音识别技术已经成为人机交互的重要方式之一。本文将介绍如何使用Python结合Vosk和PyAudio库实现一个离线语音识别系统&#xff0c;无需依赖网络连接即可完成语音转文字的功能。 技术栈概述 1. Vosk语音识别引擎 Vosk是一个开源的…

MyBatisPlus--快速入门

MyBatisPlus介绍 从名字中就可以感觉到MybatisPlus与MyBatis之间的渊源&#xff0c;而MyBatis是一个非常流行的持久层框架&#xff0c;主要来做数据库的增删改查&#xff0c;而MyBatisPlus这种命名方式让人不得不往MyBatis的升级版去联想&#xff0c;事实也确实如此&#xff0…