Ubuntu安装教程+网页部署于服务器(前端+后端+mysql数据库)新版

 Ubuntu安装配置教程

1、Ubuntu安装教程

1.1、下载Ubuntu

教程:https://blog.csdn.net/weixin_73404807/article/details/132296815?ops_request_misc=&request_id=&biz_id=102&utm_term=ubuntu-20.04.6-desktop&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-132296815.142^v100^control&spm=1018.2226.3001.4187

下载地址:

https://mirrors.aliyun.com/ubuntu-releases/20.04/ubuntu-20.04.6-desktop-amd64.iso?spm=a2c6h.25603864.0.0.66104509Ae4ZKf

1.2、点击创建虚拟机

典型=》选择iso路径

一直下一步,然后耐心等待。。。直到出现下图,然后会自动锁小键盘,打开即可。

 2、Ubuntu配置教程

2.1汉化教程如下:

右键选择OPEN in terminal

界面中文汉化,如果是桌面版(即有界面而不是纯命令行),汉化需要安装中文语言包

sudo apt install language-pack-zh-hans

配置汉化包 

第一种:sudo update-locale LANG=zh_CN.UTF-8(未尝试)

第二种如下:通过图形界面的设置 -> Region & Language -> 右侧加号 -> 简体中文 

​ 

2.2文件编辑器教程如下:

vim安装:

1.检查是否安装vim

vim --version

若输出了vim的版本信息,则已安装vim,可跳过vim的安装步骤

2.安装vim

sudo apt install vim

即可安装完成

ssh安装(用于XSHELL XFTP): 

ssh连接

1、安装openssh-server

sudo apt install openssh-server

即可安装完成

net-tools 网络信息查看: 

net-tools 网络信息查看

1.检查是否安装

ifconfig

若输出了网卡、ip等信息,则已安装net-tools,可跳过net-tools的安装步骤

2.安装net-tools

sudo apt install net-tools

即可安装完成

firewalld 防火墙

本文没有安装防火墙,若有防火墙,需要开放端口

sudo firewall-cmd --permanent --add-port=5173/tcp

重新载入配置

sudo firewall-cmd --reload

 2.3配置静态IP方法教程如下:

点击虚拟机软件的编辑按钮=》虚拟机网络编辑器=》更改设置=》查看下列IP信息

​ 根据上述信息,可以设置的静态IP为192.168.235.128~192.168.235.255 

​重启网络 

项目部署教程

1.部署准备

        此处在home目录底下新建project文件夹,用于存放项目以及配置文件。以下内容所放置文件皆在此目录下。

命令行方式:

mkdir ~/project

图形化方式: 

数据库安装配置教程

1.mysql环境安装

安装命令:

sudo apt install mysql-server

2.配置数据库 

第一次登录:(注意,一定要设置,否则后面很麻烦) 

以超级用户权限运行 mysql 命令,登录到 MySQL 服务:

sudo mysql
  • 以下代码解释:
    • 登录 MySQL 后,选择 mysql 数据库,修改 root 用户的验证方式。
    • 确保使用经典的 mysql_native_password 验证方式(避免与某些旧客户端的兼容性问题)。
    • 设置 root 用户的密码为 123456 并禁用密码过期功能。
    • 确保修改后生效,并退出数据库管理环境。
use mysql;

ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '123456' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

quit;

3.导入数据源

将数据库打包文件放入project文件夹(由navicat打包)。

进入数据库代码(密码为123456): 

mysql -u root -p

创建数据库代码: 

CREATE DATABASE virtulab;

使用当前创建的数据库: 

use virtulab; 

记得此图形界面路径为,home底下的用户的文件夹,也就是/home/lyf/

在执行source前记得先执行上述代码并不退出mysql。 (因为mysql可以有多个数据库,但是插入数据的时候需指定一个数据库)

导入数据库数据:

source /home/lyf/project/virtulab.sql;

前端安装配置教程

1.引入前端打包的dist文件

将打包好的前端dist文件放入project文件夹

2.nginx环境安装

2.1nginx安装
sudo apt install nginx
2.2新建nginx配置文件

新建配置文件代码: 

gedit /home/lyf/project/nginx_config

将以下代码写入当前文件,并点击保存。 (若格式出现问题也会报错)

server {
    listen 5173;
    server_name test;

    root /home/lyf/project/dist;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

    # Optional: Enable gzip compression
    gzip on;
    gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
    gzip_vary on;
    gzip_min_length 1024;
}

 2.3将配置文件链接至nginx

  (代码里不能出现多余空格,否则会导致代码报错)

(这里的/home/lyf/project/nginx_config一定要是绝对路径,相对路径的nginx_config会报错)

sudo ln -s /home/lyf/project/nginx_config /etc/nginx/sites-enabled/ 
 2.4nginx安装状态查询

测试配置文件是否正确

sudo nginx -t

出现successful说明正确

重启nginx以应用配置

sudo systemctl restart nginx
2.5nginx报错查询
# 查看最近的 Nginx 错误日志
tail -f /var/log/nginx/error.log

nginx报错解决:

1.permisson denied问题(没有访问权限 500 internal server error)

        修改nginx本来的配置文件 

sudo gedit /etc/nginx/nginx.conf

默认用户为www-data(此用户拥有所有权限)

 将user后面加入自己的用户,重启即可。

后端安装配置教程

1.Java环境安装

OpenJDK-21安装 :

sudo apt install openjdk-21-jdk

设置环境变量:

sudo gedit ~/.bashrc

在最后一行添加(注意回车时vim会自动给新行加#,#是注释的意思,如果加了请去掉) :

JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64

应用环境变量:

source ~/.bashrc

验证是否安装成功:

echo $JAVA_HOME

 

2.Redis环境安装

sudo apt install redis

3.引入后端打包的Jar包

将打包好的jar包放入project文件夹下:

将后端资源文件放入project文件夹下(记得修改后端读取文件路径,此项目需要项目资源文件,没有使用此方法的可以省略此步骤): 

 

可以使用进行测试后端导入情况:

java -jar VirtuLab_back-0.0.1-SNAPSHOT.jar 

 

3.配置后端自启动

新建可执行文件:

(以 / 开头,表示从文件系统的根目录开始。)

~ 是用户家目录的快捷方式。如果你登录的用户是 lyf,那么 ~ 实际上表示 /home/lyf。)

sudo gedit /home/lyf/project/autustart.sh

往文件中写入: 

java -jar /home/lyf/project/VirtuLab_back-0.0.1-SNAPSHOT.jar 

 

设置自启动文件(为了防止文件冲突,取名autostart=>autustart)

sudo gedit /etc/systemd/system/autustart.service
插入以下内容
[Unit]

Description=My Script Service

After=network.target

[Service]

ExecStart=/home/lyf/project/autustart.sh

[Install]

WantedBy=multi-user.target

启用并启动 systemd 服务 为了使服务在系统启动时自动运行,你需要启用它,并启动服务: 

sudo systemctl enable autustart.service
sudo systemctl start autustart.service

 检查服务状态 要检查服务是否成功启动,可以使用以下命令:

sudo systemctl status autustart.service

 报错解决如下:

通过以下代码都可以查询错误原因:

sudo systemctl status autustart.service
journalctl -u autustart.service

错误代码 203/EXEC 表示在执行 /home/lyf/project/autustart.sh 时出现了权限或执行问题。

 解决方法如下:

新增权限:
sudo chmod +x /home/lyf/project/autustart.sh(记得修改路径)
脚本修改:autustart.sh 脚本加入一行
#!/bin/bash
java -jar /home/lyf/project/VirtuLab_back-0.0.1-SNAPSHOT.jar
重启代码:
sudo systemctl daemon-reload
sudo systemctl restart autustart.service
然后检查服务的状态:
sudo systemctl status autustart.service

 

<think>嗯,用户想知道怎么把Python+Vue+MySQL的项目部署服务器上。首先,我得理清楚整个过程的大致步骤,确保每个部分都覆盖到。可能用户是个开发者,但可能对服务器部署不太熟悉,所以需要详细但易懂的步骤。 首先,用户的项目结构应该是前端用Vue,后端用Python,比如Django或Flask,再加上MySQL数据库部署的话,通常需要服务器、域名、配置环境这些。我得考虑常见的服务器选择,比如阿里云、腾讯云这些,还有Ubuntu系统,因为比较常用。 然后,步骤大概分几部分:准备服务器部署后端部署前端、配置数据库、域名和Nginx反向代理,以及最后的维护。每个部分都需要详细说明,比如服务器设置包括更新系统、安装必要工具,可能还要配置防火墙。这里需要注意用户可能不熟悉ufw或者apt命令,得写清楚命令和步骤。 部署后端部分,得考虑Python环境,比如用virtualenv或者直接安装依赖。还要处理项目文件的上传,可能用git或者scp。这里要提醒用户安装依赖,比如Gunicorn和Nginx的配置,特别是Nginx的反向代理设置,可能需要给出示例配置文件的内容。还有Gunicorn的服务配置,用systemd来管理,确保服务在后台运行。 前端部署的话,Vue项目需要先构建生成静态文件,然后用Nginx来托管。可能需要指导用户如何修改nginx配置,指定root目录。同时,跨域问题可能在后端已经处理了,但如果有的话,可能需要提醒。 数据库方面,MySQL安装和配置,创建用户和数据库,还有导入数据。这里要注意安全,比如设置root密码,限制远程访问,或者使用ssh隧道,避免直接暴露端口。用户可能需要知道如何导出本地数据并导入到服务器,用mysqldump命令。 域名和HTTPS部分,需要解释如何解析域名到服务器IP,然后用Certbot申请SSL证书,这涉及到安装Certbot和自动配置Nginx。这部分可能需要根据不同的操作系统给出具体命令,比如Ubuntu用的apt命令。 维护方面,可能需要用Git来更新代码,然后重启服务。另外,备份数据库和代码的步骤也很重要,提醒用户定期备份,避免数据丢失。 用户可能遇到的问题包括权限设置、服务启动失败、端口冲突、静态文件路径错误等,需要给出一些排查建议,比如查看日志,检查配置文件语法。此外,安全方面需要强调防火墙设置,避免不必要的端口开放,使用SSH密钥登录,禁用root远程登录等。 最后,整个流程要尽量详细,但不要过于复杂,让用户一步步跟着做就能完成部署。可能还需要根据用户使用的具体框架调整步骤,比如如果用的是Flask,可能和Django的部署稍有不同,但整体流程相似。确保每个命令和配置文件的示例正确,避免用户复制粘贴时出错。</think>以下是将Python+Vue+MySQL项目部署服务器的具体操作流程,分为六个关键步骤: --- ### 一、服务器基础准备 1. **服务器选择** - 推荐使用阿里云/腾讯云/华为云,选择Ubuntu 22.04 LTS系统 - 安全组开放端口:22(SSH), 80(HTTP), 443(HTTPS), 3306(MySQL按需开放) 2. **系统初始化** ```bash ssh root@your_server_ip # 连接服务器 apt update && apt upgrade -y # 更新系统 apt install -y git nginx mysql-server python3-pip python3-venv nodejs npm # 安装基础工具 ufw allow 22,80,443/tcp # 配置防火墙 ``` --- ### 二、Python后端部署(以Flask为例) 1. **项目上传** ```bash cd /var/www git clone https://github.com/yourname/backend.git # 或使用scp上传 cd backend && python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # 包含gunicorn依赖 ``` 2. **Gunicorn+Nginx配置** ```ini # /etc/systemd/system/flask.service [Unit] Description=Gunicorn instance for Flask After=network.target [Service] User=root WorkingDirectory=/var/www/backend ExecStart=/var/www/backend/venv/bin/gunicorn -w 4 -b 0.0.0.0:5000 app:app Restart=always [Install] WantedBy=multi-user.target ``` ```bash systemctl daemon-reload systemctl start flask && systemctl enable flask ``` 3. **Nginx反向代理** ```nginx # /etc/nginx/sites-available/backend server { listen 80; server_name api.yourdomain.com; location / { proxy_pass http://127.0.0.1:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` ```bash ln -s /etc/nginx/sites-available/backend /etc/nginx/sites-enabled/ nginx -t && systemctl reload nginx ``` --- ### 三、Vue前端部署 1. **构建生产环境代码** ```bash cd frontend npm install npm run build # 生成dist目录 ``` 2. **Nginx托管静态文件** ```nginx # /etc/nginx/sites-available/frontend server { listen 80; server_name yourdomain.com; root /var/www/frontend/dist; index index.html; location / { try_files $uri $uri/ /index.html; } } ``` --- ### 四、MySQL数据库配置 1. **安全初始化** ```bash mysql_secure_installation # 设置root密码/删除测试库等 mysql -u root -p ``` ```sql CREATE DATABASE projectdb; CREATE USER 'projectuser'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON projectdb.* TO 'projectuser'@'localhost'; FLUSH PRIVILEGES; ``` 2. **导入本地数据** ```bash # 本地导出 mysqldump -u root -p projectdb > backup.sql # 服务器导入 scp backup.sql root@your_server_ip:/tmp mysql -u projectuser -p projectdb < /tmp/backup.sql ``` --- ### 五、域名与HTTPS配置 1. **域名解析** - 在域名控制台添加A记录:@ 和 www 指向服务器IP 2. **SSL证书申请** ```bash snap install --classic certbot certbot --nginx # 按提示选择要加密的域名 ``` --- ### 六、运维管理 1. **服务更新流程** ```bash cd /var/www/backend git pull systemctl restart flask ``` 2. **数据库备份** ```bash # 每日自动备份 crontab -e 0 3 * * * mysqldump -u projectuser -p'password' projectdb > /backups/db_$(date +\%F).sql ``` --- ### 常见问题排查 1. **服务启动失败** - 查看日志:`journalctl -u flask -f` - 检查端口占用:`netstat -tulnp | grep :5000` 2. **跨域问题** - 确认后端已配置CORS中间件 - 检查Nginx的`proxy_set_header`配置 3. **静态文件404** - 确认`nginx -t`通过配置检查 - 检查文件权限:`chmod -R 755 /var/www/frontend/dist` --- ### 安全建议 1. 使用SSH密钥登录代替密码登录 2. MySQL不要开放外网访问(通过SSH隧道连接) 3. 定期更新系统补丁:`unattended-upgrades` 部署完成后,可通过`https://yourdomain.com`访问前端,`https://api.yourdomain.com`访问后端API。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值