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

news2025/6/1 21:01:51

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

阿里云创建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.coloradmin.cn/o/2392974.html

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

相关文章

windows中Redis、MySQL 和 Elasticsearch启动并正确监听指定端口

Redis:在 localhost 上启动,并监听端口 6379 MySQL:在 localhost 上启动,并监听端口 3306 Elasticsearch:在 127.0.0.1 上启动,并监听端口 9300 1. Redis 确保 Redis 在 localhost 上启动并监听端口 6379…

学者观察 | Web3.0的技术革新与挑战——北京理工大学教授沈蒙

导语 沈蒙老师认为Web3.0正推动形成新型数据基础设施架构和数据要素流通机制,有望在数字经济时代发挥重要作用,对我国经济发展和社会进步将产生深远影响。AI在推动Web3.0发展方面具有巨大的潜力,但在隐私保护、公平性与安全性等方面也存在“…

pycharm终端遇不显示虚拟环境的问题

大部分我们用pycharm会配合我们的anaconda来使用,但是配置好后,可能会出现pycharm终端不显示虚拟环境的问题。 首先是确定不显示环境,下图中如果没有这个方框,就是不显示虚拟环境。此时用pip或者conda的命令是会提示不是 “不是内…

聊聊网络变压器的浪涌等级标准是怎样划分的呢?

Hqst盈盛(华强盛)电子导读:聊聊网络变压器的浪涌等级标准是怎样划分的呢? 在和做防雷产品的客户的深度沟通网络变压器产品选型中发现:客户对网络变压器的浪涌等级划分也很希望有更深的了解,今天就这个问题和…

2025年Google I/O大会上,谷歌展示了一系列旨在提升开发效率与Web体验的全新功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

ONLYOFFICE文档API:编辑器的品牌定制化

在当今数字化办公时代,文档编辑器已成为各类企业、组织和开发者不可或缺的工具之一。ONLYOFFICE 文档提供的功能丰富且强大的文档编辑 API,让开发者能够根据自己的产品需求和品牌特点,定制编辑器界面,实现品牌化展示,为…

HTTP/HTTPS与SOCKS5三大代理IP协议,如何选择最佳协议?

在复杂多变的网络环境中,代理协议的选择直接影响数据安全、访问效率和业务稳定性。HTTP、HTTPS和SOCKS5作为三大主流代理协议,各自针对不同场景提供独特的解决方案。本文将从协议特性、性能对比到选型策略,为您揭示如何根据业务需求精准匹配最…

远程调用 | OpenFeign+LoadBalanced的使用

目录 RestTemplate 注入 OpenFeign 服务 LoadBalanced 服务 LoadBalanced 注解 RestTemplate 注入 创建 配置类,这里配置后 就不用再重新new一个了,而是直接调用即可 import org.springframework.cloud.client.loadbalancer.LoadBalanced; import …

NSSCTF [NISACTF 2022]ezheap

2058.[NISACTF 2022]ezheap(堆溢出) [NISACTF 2022]ezheap 1.准备 2.ida分析 main函数 int __cdecl main(int argc, const char **argv, const char **envp) {char *command; // [esp8h] [ebp-10h]char *s; // [espCh] [ebp-Ch]setbuf(stdin, 0);setbuf(stdout, 0);s (cha…

【HarmonyOS Next之旅】DevEco Studio使用指南(二十七) -> 开发云函数

目录 1 -> 开发流程 2 -> 创建并配置函数 2.1 -> 创建函数 2.2 -> 配置函数 3 -> 开发函数 4 -> 调试函数 4.1 -> 前提条件 4.2 -> 通过本地调用方式调试函数 4.3 -> 通过远程调用方式调试函数 5 -> 部署函数 1 -> 开发流程 云函数…

Rust 学习笔记:闭包

Rust 学习笔记:闭包 Rust 学习笔记:闭包用闭包捕获环境闭包类型推断和注释捕获引用或移动所有权将捕获的值移出闭包和 Fn Traits Rust 学习笔记:闭包 Rust 的闭包是匿名函数,可以保存在变量中,也可以作为参数传递给其…

c# 获取电脑 分辨率 及 DPI 设置

using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices;/// <summary> /// 这个可以 /// </summary> class Program {static void Main(){//设置DPI感知try{SetProcessDpiAwareness(…

低代码开发模式下的应用交付效率优化:拖拽式交互机制研究

低代码开发平台凭借其可视化操作、快速构建、灵活扩展等核心特性&#xff0c;正在成为推动企业数字化转型的重要工具。 拖拽式开发&#xff0c;降低技术门槛 &#xff1a;图形化界面与模块化组件&#xff0c;用户无需编写复杂代码&#xff0c;只需通过简单的拖拽即可完成应用搭…

STP配置

由于我们演示的是STP 但是华为交换机默认的都是MSTP所以要换到STP以下是方法 STP mode &#xff1f; 查看模式 STP mode stp 选择stp 换好了后配置交换机优先级 [SWA]stp priority 4096 Apr 15 2013 16:15:33-08:00 SWA DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5…

Linux操作系统 使用共享内存实现进程通信和同步

共享内存使用 //main.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <sys/shm.h> #include <string.h> int main() {int shmidshmget((key_t)1234,256,IPC_CREAT|0600);assert(shmid!-1);…

如何优化微信小程序中渲染带有图片的列表(二进制流存储方式的图片存在本地数据库)

方法一&#xff1a;对列表的获取进行分页处理 实现方法&#xff1a; 前端请求&#xff08;需要向后端传两个参数&#xff0c;pageIndex是获取第几页是从0开始&#xff0c;pageSize是这一页需要获取多少个数据&#xff09; 后端接口实现&#xff08;因为这里是通过参数拼接请求…

尝鲜纯血鸿蒙,华为国际版本暂时不支持升级。如mateX6 国际版?为什么不支持?什么时候支持?

一&#xff1a;mateX6 国际版支持鸿蒙吗&#xff1f; 不支持 二&#xff1a;华为国际版支持鸿蒙吗&#xff1f; 不支持 三&#xff1a;华为国际版什么时候支持&#xff1f; 2025年预期可以支持。请耐心等待。 三&#xff1a;国际版为什么不支持&#xff1f; EMUI 采用AO…

[科研实践] VS Code (Copilot) + Overleaf (使用 Overleaf Workshop 插件)

科研圈写文档常用 Latex 环境&#xff0c;尤其是 Overleaf 它自带的 AI 润色工具 Writefull 太难用了。如果能用本地的 CoPilot / Cursor 结合 Overleaf&#xff0c;那肯定超高效&#xff01; 于是我们找到了 VS Code 里的 Overleaf Workshop 插件。这里已经安装好了&#xff0…

从0开始学习R语言--Day12--泊松分布

今天我们来看一个很经典的回归模型&#xff1a;泊松分布。 泊松分布 我们一般会把泊松分布用于预测问题&#xff0c;比如想知道成年人每天接到的骚扰电话次数&#xff0c;医院每天的急诊病人等。但在一些方面&#xff0c;跟我们想的会有出入。例如你不能将其应用在预测下周你的…

工控机安装lubuntu系统

工控机安装lubuntu系统指南手册 1. 准备 1个8G左右的U盘 下载Rufus&#xff1a; Index of /downloads 下载lubuntu系统镜像&#xff1a; NJU Mirror Downloads – Lubuntu 下载Ventoy工具&#xff1a; Releases ventoy/Ventoy GitHub 下载后&#xff0c;解压&#…