如何将项目部署到Linux服务器上

39次阅读

一. 环境部署

1. 安装 redis

· 下载所需版本的 redis(https://download.redis.io/releases/)

我这边选的是 5.0.14如何将项目部署到Linux服务器上插图

· 本机上下载好后上传至服务器 , 通常上传至 /usr/local 下面 , 我这边使用 Filezila 上传的

并且在 /usr/local 目录下建了一个 redis 目录存放上面的压缩包

如何将项目部署到Linux服务器上插图1

· 解压 redis 目录下的压缩包

tar -zvxf redis-5.0.14.tar.gz

·redis 是 c 语言开发 , 安装 redis 需要先将官网下载的源码进行编译 , 编译依赖 gcc 环境 , 如果

没有 gcc 环境 , 需要安装 gcc 需要输入以下命令

yum install gcc

· 以下三行代码用于升级版本

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

可通过 gcc -v 查看版本 , 如果在后面安装 ngnix 等需要 gcc 的时候报错找不到命令可能是环境变量导致的问题 , 需要上网查一下解决办法

gcc -v

· 进入到 redis 的解压目录下的 src 目录 , 执行 make

make

· 编译成功之后会出现“It's a good idea to run 'make test'”的提示

如何将项目部署到Linux服务器上插图2

· make PREFIX=/usr/local/redis install 注意路径是否和自己的一样

make PREFIX=/usr/local/redis install

如何将项目部署到Linux服务器上插图3

安装成功 !

·将 redis.config 文件从 redis 目录下的 redis-5.0.14 中复制一份到 redis 目录下

如何将项目部署到Linux服务器上插图4

复制 redis.config 的命令

cp redis.conf /usr/local/redis/

· 可通过在 redis 目录下执行 ./bin/redis-server& ./redis.conf 启动 redis 此启动方式是采取后台进程方式

./bin/redis-server& ./redis.conf

·也可通过在 redis 目录下执行./bin/redis-server ./redis.conf 启动 redis 此方式采取显示启动方式 如在配置文件设置了 daemonize 属性为 yes 则跟后台进程方式启动其实一样

./bin/redis-server ./redis.conf

如想修改 redis.config 目录下 daemonize 属性为 yes, 可按照如下操作

redis 目录下执行 vi redis.conf

vi redis.conf 

shift + : 进入命令行模式 通过 / + name 快速查找 如 / daemonize如何将项目部署到Linux服务器上插图5

将 no 改为 yes 我这边是改过的 , 所以图片里面是 yes

如何将项目部署到Linux服务器上插图6

· 查看 redis 运行情况

ps -ef|grep redis

2 . 安装 MySQL (由于我这边很久以前就装了 mysql, 先省略)

3. 安装 ngnix

·下载 ngnix 安装包

打开 Nginx 官网 :nginx: download
然后我们找到一个版本 , 把鼠标移动到上面 , 右键 – 复制链接地址

如何将项目部署到Linux服务器上插图7

· 也可图省事不选版本直接照着网上人家的来

· 安装 wget , 如果有请跳过这步

yum install -y wget 

· 使用 weget 命令下载 nginx 安装包 通常放在 /usr/local 下 , 可自己再建个 ngnix 目录存放 , 方便管理

wget -c http://nginx.org/download/nginx-1.23.1.tar.gz 

· 解压安装包

tar -zxvf nginx-1.23.1.tar.gz 

· 在虚拟机中安装相关依赖

 在虚拟机中安装相关依赖 : yum install pcre-devel yum install zlib zlib-devel yum install openssl openssl-devel // 也可用一条命令代替 yum install pcre-devel zlib zlib-devel openssl openssl-devel 

分开拿出来以下 , 方便复制 , 嘿嘿

yum install pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
yum install pcre-devel zlib zlib-devel openssl openssl-devel

· 安装好之后 , 进入 nginx 目录

cd /usr/local/nginx-1.23.1 

· 执行配置脚本

./configure 

· 编译安装 (记得配 gcc, 如果没有的话)

make & make install 

· 启动 ngnix

启动前要查看端口是否放行 , 或者是防火墙是否关闭 , 否则无法访问

查看已放行的端口

firewall-cmd --list-all 

放行 8080 端口 , 并重载防火墙

firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload 

( 这里 nginx 默认端口号是 80, 我们就放行 80 端口 )

或者直接关闭防火墙

临时关闭

systemctl stop firewalld.service 

永久关闭

systemctl disable firewalld.service 

可设置 nginx 开机自启动

vim /etc/rc.local 文本底部追加 /usr/local/nginx/sbin/nginx 

如何将项目部署到Linux服务器上插图8

启动 ngnix

/usr/local/nginx/sbin/nginx 

查看运行情况

ps -ef | grep nginx 

访问 nginx 页面

在浏览器中输入 ip + 端口号访问 ( 端口默认 80)

这样就算安装成功了

如何将项目部署到Linux服务器上插图9

二. 部署项目

1. 后端打包

· 先 clean 一下如何在 package

如何将项目部署到Linux服务器上插图10

如何将项目部署到Linux服务器上插图11

· 将 jar 包上传至服务器 , 可以在服务器上建一个目录专门用来存放

如何将项目部署到Linux服务器上插图12

2. 前端打包

· 到前端项目所在的目录下

如何将项目部署到Linux服务器上插图13

如何将项目部署到Linux服务器上插图14

· 在此路径下打开命令提示符 ( 注意路径 )

如何将项目部署到Linux服务器上插图15

· 打包项目

npm install --unsafe-perm --registry=https://registry.npm.taobao.org
npm run build:prod

打包好后在前端项目的目录下会出现一个 dict 文件夹

如何将项目部署到Linux服务器上插图16

· 将 dict 文件上传至服务器上 , 可以和之前的 jar 包放一起

如何将项目部署到Linux服务器上插图12

3. 配置 ngnix

· 修改配置文件

vi /usr/local/nginx/conf/nginx.conf 

防止出现权限相关的问题 , 将文件开头的 user 修改为 root

如何将项目部署到Linux服务器上插图17

修改前端访问路径以及添加代理

如何将项目部署到Linux服务器上插图18

location /prod-api/ {proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080/;}

重启 ngnix 启动 redis 以及 后端 jar 包基本就可以运行了 , 不过可以添加一个脚本方便我们启动 jar 包

脚本名 appStart.sh

#!/bin/bash APP_NAME=/myproject/ruoyi/projectManage/ruoyi-admin.jar #使用说明 , 用来提示输入参数 usage() { echo "Usage: sh app.sh [start|stop|restart|status]" exit 1 } #检查程序是否在运行 is_exist(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` #如果不存在返回 1 , 存在返回 0 if [-z "${pid}" ]; then return 1 else return 0 fi } #启动方法 start(){ is_exist if [ $? -eq 0]; then echo "${APP_NAME} is already running. pid=${pid}" else nohup java -jar ${APP_NAME} >app.out 2>&1 & fi } #停止方法 stop(){ is_exist if [ $? -eq "0"]; then kill -9 $pid else echo "${APP_NAME} is not running" fi } #输出运行状态 status(){ is_exist if [ $? -eq "0"]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is NOT running." fi } #重启 restart(){ stop sleep 5 start} #根据输入参数 , 选择执行对应方法 , 不输入则执行使用说明 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;; esac

· 将脚本放到 jar 包同级目录下 , 并修改脚本开头 APP_NAME 后面的内容为自己 jar 的路径

如何将项目部署到Linux服务器上插图12

vi ./appStart.sh

将路径改成自己 jar 包在 Linux 服务器上的路径

如何将项目部署到Linux服务器上插图19

4. 启动项目

· 启动 redis ( 已启动请略过 )

./bin/redis-server ./redis.conf

· 启动 ngnix ( 已启动请略过 )

/usr/local/nginx/sbin/nginx 

· 启动项目 ( 脚本中还有 stop、restart 等方法 , 调用方法相同 )

./appStart.sh start

· 查看日志 ( 项目同级目录下有个 app.out 文件 , 里面应该就是日志 )

tail -f app.out 

启动中

如何将项目部署到Linux服务器上插图20

启动成功后就可以网页访问了

如何将项目部署到Linux服务器上插图21

大功告成!

原文链接:https://blog.csdn.net/m0_67305099/article/details/132484078

正文完
 
追风者
版权声明:本站原创文章,由 追风者 2024-01-02发表,共计3990字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布。