目录
Linux配置运行环境
安装JDK
一、下载JDK压缩包
二、压缩包上传压解
三、配置JDK环境变量
四、测试是否成功
安装Tomcat
一、下载Tomcat压缩包
二、压缩包上传解压
三、给防火墙添加端口
四、启动、测试
安装MyQsl
一、下载MySql压缩包
二、压缩包上传解压
三、安装和配置
开放远程权限
测试
redis
修改远程可以来连接配置
安装nginx
二、上传、安装依赖软件、
部署项目
后端
项目打包上传
启动后端项目
前端
打包上传
history模式404问题
官网下载:https://www.oracle.com/java/technologies/downloads/#java8
(需要下载 *.tar.gz 后缀结尾的压缩包)
百度网盘下载版本:jdk-8u181-linux-x64.tar.gz
链接:https://pan.baidu.com/s/1GgqXB5EnaoNaktyVDNZtOA
提取码:dpdq
在服务器创建目录
// 创建一个目录临时存放上传的压缩包
[root@localhost ~]# mkdir /usr/local/temp
// 进入进入文件夹
[root@localhost ~]# cd /usr/local/temp
[root@localhost temp]#
将下载好的压缩包使用ftp工具上传到服务器
// 查看文件是否已经上传
[root@localhost temp]# ls
apache-tomcat-9.0.78.tar.gz // 能看到文件说明已经上传成功
解压压缩包到指定目录下 /usr/local/src/
// 解压压缩包命令
tar -zxvf /usr/local/document/jdk-8u181-linux-x64.tar.gz -C /usr/local/src/
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# ls
jdk1.8.0_202 // 显示文件说明解压成功
编辑 /etc/profile文件
// 进入profile文件进项编辑
[root@localhost src]# vi /etc/profile
快速定位最后一行进行添加编辑,保存
// 标示JDK安装目录
export JAVA_HOME=/usr/local/src/jdk1.8.0_202
// 添加PATH,在命令中可以直接运行Java相关的命令
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
在任意位置测试
// JDK安装成功
[root@localhost ~]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
Tomcat 需要先安装 JDK
官网下载:Apache Tomcat® - Apache Tomcat 9 Software Downloads
(下载核心版本,需要下载 *.tar.gz 后缀结尾的压缩包)
百度网盘下载版本:apache-tomcat-9.0.78.tar.gz
链接:https://pan.baidu.com/s/1tpGNYQZnoPKk3qOINFHgPw
提取码:9g65
同JDK一样上传到一个临时目录,进行解压
// 解压压缩包命令
tar -zxvf /usr/local/document/apache-tomcat-9.0.78.tar.gz -C /usr/local/src/
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# ls
tomcat9 // 显示文件说明解压成功
可以在tomcat9/conf/service.xml文件里查看端口号,默认端口是8080
如果防火墙开着的,需要把端口开启,才能在windos中的浏览器才能访问linux服务器
// 查看防火墙状态:
firewall-cmd --state
// 查看所有打开的端口:
firewall-cmd --zone=public --list-ports
// 开启端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanent(--permanent参数为永久生效,不加则重启后失效)
// 修改过后需要刷新防火墙规则,才能生效:
firewall-cmd --reload
// 删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
启动 Tomcat
// 当前位置
[root@localhost tomcat9]# pwd
/usr/local/src/tomcat9
// 启动Tomcat
[root@localhost tomcat9]# ./bin/startup.sh
Using CATALINA_BASE: /usr/local/src/tomcat/tomcat9
Using CATALINA_HOME: /usr/local/src/tomcat/tomcat9
Using CATALINA_TMPDIR: /usr/local/src/tomcat/tomcat9/temp
Using JRE_HOME: /usr/local/src/jdk1.8.0_202/jre
Using CLASSPATH: /usr/local/src/tomcat9/bin/bootstrap.jar:/usr/local/src/tomcat9/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started. // 启动成功
测试是否成功:在windows中打开任意浏览器输入 Linux服务器IP:8080(tomcat端口号) 这里需要注意一定要开启防火墙端口,否则访问不到网页,访问成功会显示如下页面
这里介绍一种我安装的方式:
百度网盘下载版本:MySql5.7
链接:https://pan.baidu.com/s/1QJj8yuVwhdhX2OFHhZKG9A
提取码:1izu
下载mysql5.7后直接使用ftp工具上传到 /usr/local/src 文件夹中
[root@localhost src]# ls
mysql-community-client-5.7.22-1.el7.x86_64.rpm
mysql-community-common-5.7.22-1.el7.x86_64.rpm
mysql-community-libs-5.7.22-1.el7.x86_64.rpm
mysql-community-server-5.7.22-1.el7.x86_64.rpm
// 先把postfix 和mariadb-libs卸载掉,不然的会有依赖包冲突:
[root@localhost src]# rpm -e postfix mariadb-libs
// 安装mysql的依赖net-tools和 perl
yum -y install net-tools perl
// 安装mysql-common包:
[root@localhost src]# rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
// 安装mysql-libs包:
[root@localhost src]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
// 安装mysql-client包;
[root@localhost src]# rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
// 安装mysql-server包
[root@localhost src]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
// 设置开机启动:
[root@localhost src]# systemctl enable mysqld
// 启动MySql服务
[root@localhost src]# systemctl start mysqld
安装成功,由于MySQL5.7安装修改密码
注意:mysql5.7增加了安全级别,密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。
// 查看系统分配的临时密码,冒号后面的就是分配到的临时密码
[root@localhost src]# grep 'temporary password' /var/log/mysqld.log
// 使用临时密码登录
[root@localhost src]# mysql -uroot -p
Enter password: // 这里在输入密码的时候会一直是空的,输入上面查看的临时密码回车即可
// 进入到mysql提示
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
// 修改密码 MySql_2023 这里是输入自己修改的密码,需要设置大小写,符号,数字相结合的密码
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySql_2023';
开放远程权限的密码可以和在linux服务器登录mysql的密码不一样,这里设置是其他地方连接的密码,比如navicat在连接时后就需要用到这个密码
/* 开放远程登录权限 MySql_2023这是数据库密码 */
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MySql_2023' WITH GRANT OPTION;
/* 修改设置后刷新数据库 */
mysql> FLUSH PRIVILEGES;
防火墙也需要把Mysql的端口号开启
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
这里的密码是上面开放远程仓库时设置的密码
在windows使用navicat连接测试,连接成功表示,配置成功
这里部署的时候我用的方法是配置application.yml的方式使用windows的redis没有安装redis,把配置文件和后端打包的jar包放在一起
// 配置文件和jar包放在一起
[root@localhost backend]# pwd
/opt/servers/caro2o/backend
[root@localhost backend]# ls
application.yml caro2o-admin.jar
application.yml中内容,文件名字一定不能写错,.yml中一定要有层级关系
spring:
redis:
# host是windos的ip地址
host: 192.168.60.131
host是windows的ip地址
使用这种方式需要把redis的本地访问修改为对远程还是本地都与允许访问
在服务中找到redis,看他的这个配置文件在哪里
找到文件打开,定位到56行将这里的改为0.0.0.0意思是所有允许本地或者远程都访问,127.0.0.1是只允许本地连接
一、下载Nginx压缩包
官网下载:nginx: download
百度网盘下载版本:nginx-1.23.2.tar.gz、pcre-8.40.tar.gz
链接: 链接:https://pan.baidu.com/s/1vCfJ7y6YO_aXu1B3kMo3og
提取码:pswf
// 安装依赖软件
[root@localhost ~]# yum install -y wget gcc gcc-c++ make openssl-devel
[root@localhost src]# ls
nginx-1.23.2.tar.gz // 这里上传文件成功
pcre-8.40.tar.gz
// 添加运行nginx的用户
[root@localhost src]# useradd -s /sbin/nologin -M www
编译安装
[root@localhost src]# pwd
/usr/local/src
// 解压文件
[root@localhost src]# tar -zxf nginx-1.23.2.tar.gz
[root@localhost src]# tar -zxf pcre-8.40.tar.gz
[root@localhost src]# cd nginx-1.23.2
// 配置编译安装Nginx Web服务器
[root@localhost nginx-1.23.2]# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.40
// 编译和安装软件
[root@localhost nginx-1.23.2]# make && make install
添加软连接
// 启动 nginx 执行命令 `[root@localhost ~]# nginx`
[root@localhost src]# `ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx`
这里示范若依前后端分离框架(jdk、mysql、nginx、tomcat都已安装、redis使用window本地的),如果是spring boot项目,内嵌的有tomcat就不需要安装tomcat
到项目更改数据库的配置信息linux服务器mysql的登陆密码和数据库名字虚拟机的IP地址
确保项目可以运行就可以到maven打包
打包好后会在target目录中会多两个文件
创建如下目录并且上传
[root@localhost backend]# pwd
/opt/servers/caro2o/backend
// caro2o 项目名, backend 存放后端文件
[root@localhost backend]# ls
application.yml caro2o-admin.jar // 上传成功
// application.yml是上面配置是使用windows的redis
navicat登录成功后,创建数据库名,把之前数据库中的表全部拷贝过来
这里导入的表创建的名字可能是小写,如果在运行时mysql表出现异常自动添加表,那么是因为mysql表名的严格区分大小写的问题,这里就需要进入配置问及那修改mysql表名不区分大小写
// 进入到当前目录
[root@localhost etc]# pwd
/etc
// my.cnf这个文件
[root@localhost etc]# ls | grep my
my.cnf
my.cnf.d
// 进入my.cnf
[root@localhost etc]# vim my.cnf
快速定位到最后一行加上 lower_case_table_names=1 保存修改退出文件,这句配置是无视数据库表名大小写规则
// 回到后端文件位置
[root@localhost backend]# pwd
/opt/servers/caro2o/backend
// application.yml是配置使用windows本地的redis,
// 如果下载安装了只需要在打包的时候修改对应的配置即可
[root@localhost backend]# ls
application.yml caro2o-admin.jar
// 启动后端
[root@localhost backend]# java -jar caro2o-admin.jar
至此项目后端启动成功
java -jar caro2o-admin.jar 这个命令启动会存在一个问题:整个终端会被占用,关闭也会随之关闭
现在我们需要另一种方式启动在若依项目中有一个ry.sh的启动脚本文件
上传到后端文件夹
[root@localhost backend]# ls
application.yml caro2o-admin.jar ry.sh
上传后输入命令启动
[root@localhost backend]# ls
application.yml caro2o-admin.jar ry.sh
[root@localhost backend]# sh ry.sh start
Starting caro2o-admin.jar......
Start caro2o-admin.jar success...
// 查看启动项
[root@localhost backend]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1061/sshd
tcp6 0 0 :::8080 :::* LISTEN 1807/java
tcp6 0 0 :::22 :::* LISTEN 1061/sshd
tcp6 0 0 :::3306 :::* LISTEN 1225/mysqld
看见8080项目后端启动成功
在终端输入npm run build:prod这个打包命令
打包命令执行完成之后将ui模块下的dist文件夹中的所有文件上传到前端的文件夹中
// 上传成功
[root@localhost frontend]# ls
favicon.ico html index.html index.html.gz robots.txt static
[root@localhost conf]# pwd
/usr/local/nginx/conf
[root@localhost conf]# ls
fastcgi.conf koi-utf nginx.conf uwsgi_params
fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default
fastcgi_params mime.types scgi_params win-utf
fastcgi_params.default mime.types.default scgi_params.default
进入nginx.conf文件修改前端文件的位置为上传前端文件的目录
代理问题
还是上面的nginx.conf配置文件,在刚刚修改location 下面假如配置
location /prod-api {
rewrite ^.+prod-api/?(.*)$ /$1 break; # 去掉 /api 前缀,如访问 /api/customers 会重写为 /custromers
proxy_pass http://localhost:8080; # java 服务访问地址
proxy_redirect off; # 关闭代理重定向
proxy_set_header Host $host; # 携带 Host 请求头
proxy_set_header X-Real-IP $remote_addr; # 自定义请求头:X-Real-IP 将客户真实的 ip 转发给服务端
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 用户访问 CDN 服务器转发 Nginx 的用户真实 ip 发送给后台
}
在刚刚修改文件下面加上配置
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
启动前端,查看启动项,看到80端口开启表示前端启动成功
// 启动前端
[root@localhost conf]# nginx
// 查看启动项
[root@localhost conf]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2070/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1061/sshd
tcp6 0 0 :::8080 :::* LISTEN 1807/java
tcp6 0 0 :::22 :::* LISTEN 1061/sshd
tcp6 0 0 :::3306 :::* LISTEN 1225/mysqld
在浏览器输入linux服务器的ip加上80端口出现登录页面表示前端项目启动成功
至此整个项目部署完成。
如有错误请联系作者修改,谢谢观看