配置JDK、Tomcat、redis、nginx、Linux部署Java项目

        

目录

Linux配置运行环境 

安装JDK

一、下载JDK压缩包

二、压缩包上传压解

三、配置JDK环境变量

四、测试是否成功

安装Tomcat

一、下载Tomcat压缩包

二、压缩包上传解压

三、给防火墙添加端口

四、启动、测试

安装MyQsl

一、下载MySql压缩包

二、压缩包上传解压

 三、安装和配置

 开放远程权限

测试

redis

修改远程可以来连接配置

安装nginx

二、上传、安装依赖软件、

部署项目

后端

项目打包上传

 启动后端项目

前端

打包上传

history模式404问题



Linux配置运行环境 

安装JDK

一、下载JDK压缩包

官网下载: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               // 显示文件说明解压成功
三、配置JDK环境变量

编辑   /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

Tomcat 需要先安装 JDK

一、下载Tomcat压缩包

官网下载: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端口号)        这里需要注意一定要开启防火墙端口,否则访问不到网页,访问成功会显示如下页面

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第1张图片

安装MyQsl

一、下载MySql压缩包

这里介绍一种我安装的方式:

百度网盘下载版本: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
测试

这里的密码是上面开放远程仓库时设置的密码

 配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第2张图片 

在windows使用navicat连接测试,连接成功表示,配置成功

redis

这里部署的时候我用的方法是配置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中一定要有层级关系

 配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第3张图片

spring:
 redis:
  # host是windos的ip地址
  host: 192.168.60.131

 host是windows的ip地址

使用这种方式需要把redis的本地访问修改为对远程还是本地都与允许访问

修改远程可以来连接配置

在服务中找到redis,看他的这个配置文件在哪里

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第4张图片

 找到文件打开,定位到56行将这里的改为0.0.0.0意思是所有允许本地或者远程都访问,127.0.0.1是只允许本地连接

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第5张图片

安装nginx

一、下载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地址

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第6张图片

 确保项目可以运行就可以到maven打包

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第7张图片

 打包好后会在target目录中会多两个文件

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第8张图片

 创建如下目录并且上传

[root@localhost backend]# pwd
/opt/servers/caro2o/backend    
// caro2o 项目名, backend 存放后端文件
[root@localhost backend]# ls
application.yml  caro2o-admin.jar   // 上传成功
// application.yml是上面配置是使用windows的redis 

navicat登录成功后,创建数据库名,把之前数据库中的表全部拷贝过来

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第9张图片

 这里导入的表创建的名字可能是小写,如果在运行时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   保存修改退出文件,这句配置是无视数据库表名大小写规则

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第10张图片

 启动后端项目

// 回到后端文件位置
[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

至此项目后端启动成功

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第11张图片

 java -jar caro2o-admin.jar 这个命令启动会存在一个问题:整个终端会被占用,关闭也会随之关闭

现在我们需要另一种方式启动在若依项目中有一个ry.sh的启动脚本文件

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第12张图片

 将文件转化为如下如这个格式配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第13张图片

 上传到后端文件夹

[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这个打包命令

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第14张图片

 打包命令执行完成之后将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文件修改前端文件的位置为上传前端文件的目录

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第15张图片

 代理问题

还是上面的nginx.conf配置文件,在刚刚修改location 下面假如配置

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第16张图片

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 发送给后台
}

history模式404问题

在刚刚修改文件下面加上配置

配置JDK、Tomcat、redis、nginx、Linux部署Java项目_第17张图片

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端口出现登录页面表示前端项目启动成功

 至此整个项目部署完成。

如有错误请联系作者修改,谢谢观看

你可能感兴趣的:(java,开发语言)