linux搭建java项目运行环境
文章目录
! 适合个人项目运行使用
! (此linux使用的是Centos 8.0.1905)
! 本文均以手动下载安装为主
! 使用Edge浏览器遇到csdn登录才能复制就在 https 前加上read 例:read:https://…
! 复制时前面有很多缩进可以用 shift加tab键 向前缩进
! 使用云服务器的先到十二目录看完注意事项再操作
! 对配置文件不熟练的,建议修改前备份一下
! 请不要忽略每一个安装步骤
! 建议安装的软件尽量都安装,不然会非常难受的(比如上传文件)
一. 安装并创建VMware虚拟机
1.安装VMware虚拟机
(1).VMware 下载链接: https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0
(2).下载完成后直接安装(以管理员方式运行)
(3).出现版本不兼容问题请自行更换其他版本(不同的电脑会出现蓝屏)
(4).出现"此主机支持 Intel VT-x,但 Intel VT-x处于禁用状态"这类信息请自行百度找你对应电脑开启Intel VT-x的方法
2.创建虚拟机并配置linux环境
! 启动虚拟机以管理员方式运行
(1).操作系统选择linux centos 64 (硬件配置我选择的是30G磁盘,2G运行2核心)
(2).创建成功后进入编辑虚拟机设置镜像地址--参考图1 (这里使用的是centos 8 boot iso镜像)
镜像下载地址:https://mirrors.aliyun.com/centos-vault/centos/8.0.1905/isos/x86_64/
(3).启动虚拟机
(4).参考图2--选择第一个,安装
(5).进入界面配置--参考图3
1.安装目的进去后直接点击完成即可
2.网络主机名进去需要开启网络连接,点击完成
3.进入安装源进行配置--参考图4
4.软件选择,根据需求进行选择(此处我选择的是 服务器 加 开发工具 和 系统工具 )
5.安装过程中不要做虚拟机以外的其他操作,可能会安装失败(可以配置root用户密码,请耐心等待)
(7).安装完成重启,输入root,和密码进行登录
3.查看ip和重新配置ip(修改后需要重启生效)
(1).修改ip
1.进入该目录: cd /etc/sysconfig/network-scripts/
2.执行: vi ifcfg-ens33
3.修改配置-参考图6以下已配置完成
1.去掉默认加上的引号
2.IPADDR需要和-图5--ip前三位一致
3.GATEWAY需要和--图5--网关一致
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPADDR=192.168.153.10
NETMASK=255.255.255.0
GATEWAY=192.168.153.2
DNS1=114.114.114.114
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=e4987998-a4ce-4cef-96f5-a3106a97f5bf
DEVICE=ens33
ONBOOT=yes
(2).vi 文本编辑命令 (常用)
a 进入编辑
G进入最后一行
Esc 退出编辑
:wq (保存并退出)
:q!(不保存退出)
:set number 显示行号
(3).命令查看ip: ip addr
4.防火墙配置
(1).查看防火墙: firewall-cmd --state
(2).关闭防火墙: systemctl stop firewalld
(3).启动防火墙: systemctl start firewalld
(4).开放单端口: firewall-cmd --add-port=80/tcp --permanent
(5).开放多端口: firewall-cmd --add-port=80-90/tcp --permanent
(6).重新加载: firewall-cmd --reload
(7).配置防火墙自启: systemctl enable firewalld
(8).取消自启: systemctl disable firewalld
(9).删除开放的端口: firewall-cmd --zone=public --remove-port=80/tcp --permanent
(10).查看已经开放的端口: firewall-cmd --list-ports
(11).查看正在使用的端口: ss -ant
图1
图2
图3
图4
图5
图6
二. 安装JDK 1.8
! 目前如果项目是spring boot 3.0开发。请自行更换jdk版本
! 建议安装FinalShell或者xshell,Xftp等工具
! 创建一个保存安装包文件目录,使用 mkdir 命令进行创建(例如: mkdir /tools)
(1).下载地址: https://download.oracle.com/otn/java/jdk/8u321-b07/df5ad55fdd604472a86a45a217032c7d/jdk-8u321-linux-x64.tar.gz
(2).上传压缩包到linux中--参考图1
(3).解压: tar -zxvf jdk-8u321-linux-x64.tar.gz
(4).创建jdk安装目录: mkdir /usr/local/java
(5).将解压后的jdk拷贝到安装目录: cp -rf jdk1.8.0_321 /usr/local/java
(6).打开环境变量配置: vi /etc/profile
末尾添加以下配置 退出保存
export JAVA_HOME=/usr/local/java/jdk1.8.0_321
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
(7).刷新配置: source /etc/profile
(8).测试安装--参考图2: java -version
图1
图2
三. 安装Tomcat 9.0.6
(1).下载地址: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.60/bin/apache-tomcat-9.0.60.tar.gz
(2).上传压缩包到linux中--参考图1
(3).解压: tar -zxvf apache-tomcat-9.0.60.tar.gz
(4).创建tomcat安装目录: mkdir /usr/local/tomcat
(5).将解压后的tomcat拷贝到安装目录: cp -rf apache-tomcat-9.0.60 /usr/local/tomcat/
(6).开放8080端口: firewall-cmd --add-port=8080/tcp --permanent
(7).重新加载: firewall-cmd --reload
(8).进入安装目录下tomcat的bin目录: cd /usr/local/tomcat/apache-tomcat-9.0.60/bin
(9).启动tomcat: ./startup.sh
(10).测试安装--参考图2: 192.168.153.10:8080
图1
图2
四. 安装MySQL 5.7.36(关系型数据库)
! 建议安装Navicat或SQLyog等工具
(1).下载地址: https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
(2).上传压缩包到linux中--参考图1
(3).解压: tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
(4).解压后的名称修改: mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql
(5).将解压后的mysql拷贝到local目录下: cp -rf mysql /usr/local/
(6).在mysql目录下创建data目录: mkdir /usr/local/mysql/data
(7).创建mysql用户:
groupadd mysql
useradd -r -g mysql mysql
(8).更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限:
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
(9).进入mysql bin目录进行编译安装并初始化:! ! ! (注意复制保存生成的密码--参考图2末尾)
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
(10).启动mysql: /usr/local/mysql/support-files/mysql.server start --参考图3 错误
(11).添加软连接:
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
(12).重新启动mysql: service mysql restart --参考图4
(13).登录mysql: mysql -u root -p 输入前面生成的密码
出现错误: mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
(14).登录报错,需要再添加一个依赖: yum install libncurses*
出现错误:同步仓库 'AppStream' 缓存失败
解决: cd /etc/yum.repos.d/ 进入此目录--参考图5--分别将原文件中的下载源地址更换掉
复制时前面有很多缩进可以用 shift加tab键 向前缩进
修改完成后再执行: yum install libncurses*
1.CentOS-Base.repo文件
[BaseOS]
name=Qcloud centos OS - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/BaseOS/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-Official
2.CentOS-centosplus.repo文件
[centosplus]
name=Qcloud centosplus - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/centosplus/$basearch/os/
enabled=0
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-Official
3.CentOS-Extras.repo文件
[extras]
name=Qcloud centos extras - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-Official
4.CentOS-fasttrack.repo文件
[fasttrack]
name=Qcloud centos fasttrack - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/fasttrack/$basearch/os/
enabled=0
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-Official
5.CentOS-AppStream.repo文件
[AppStream]
name=Qcloud centos AppStream - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/AppStream/$basearch/os/
enabled=0
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-Official
6.CentOS-PowerTools.repo文件
[PowerTools]
name=Qcloud centos PowerTools - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/PowerTools/$basearch/os/
enabled=0
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-Official
(15).下载安装完成后直接登录: mysql -u root -p 密码是前面生成的密码
(16).登录成功后修改密码: set password for root@localhost = password('123456');
(17).开放远程连接:
1.查看数据库: show databases;
2.使用mysql数据库: use mysql;
3.查看用户表: select host,user from user;
4:更改用户表: update user set host = '%' where user = 'root';
5.配置任何主机都能访问: grant all privileges on *.* to 'root'@'%'with grant option;
6.强制刷新: flush privileges;
7.退出数据库操作界面: exit
8.开放3306端口: firewall-cmd --add-port=3306/tcp --permanent
9.重新加载: firewall-cmd --reload
10.测试远程连接--参考图6
图1
图2
图3
图4
图5
图6
图7
五. 安装Nginx服务器
! 以上环境已经可以运行Java项目
(1).下载地址: https://nginx.org/download/nginx-1.20.2.tar.gz
(2).上传压缩包到linux--参考图1
(3).解压: tar -zxvf nginx-1.20.2.tar.gz
(4).创建安装目录: mkdir /usr/local/nginx
(5).进入解压后的nginx: cd nginx-1.20.2
(6).指定安装目录: ./configure --prefix=/usr/local/nginx/ (可能出现错误)
出现错误--参考图2--就执行: yum -y install pcre-devel openssl openssl-devel
重新执行: ./configure --prefix=/usr/local/nginx/
(出现没有C编译器的情况或缺少其他依赖时自行百度查找解决,这里提供两条命令可以试试)
yum install gcc gcc-c++
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
(7).编译并安装nginx: make && make install
(8).开启80端口: firewall-cmd --add-port=80/tcp --permanent
(9).重新加载: firewall-cmd --reload
(10).进入nginx安装目录sbin目录: cd /usr/local/nginx/sbin
(11).启动nginx: ./nginx
(12).测试安装浏览器访问--参考图3: 192.168.153.10
图1
图2
图3
六. 安装redis数据库(非关系型数据库)
! 建议安装RESP等工具
(1).下载地址: http://download.redis.io/releases/redis-6.0.6.tar.gz
(2).上传压缩包到linux--参考图1
(3).解压: tar -zxvf redis-6.0.6.tar.gz
(4).创建安装目录: mkdir /usr/local/redis
(5).进入解压后的redis目录: cd redis-6.0.6/
(6).执行编译: make
(7).指定安装路径开始安装: make PREFIX=/usr/local/redis/ install
(8).进入redis安装目录的bin目录: cd /usr/local/redis/bin/
(9).前台启动redis: ./redis-server --效果参考图2 ctrl c 退出关闭
(10).配置后台启动: cp /tools/redis-6.0.6/redis.conf /usr/local/redis/bin/
(11).修改redis.conf文件: vi /usr/local/redis/bin/redis.conf
修改内容(--参考图3--)daemonize no 改为 yes 保存退出
(12).启动redis: ./redis-server redis.conf --效果参考图4
(13).进入redis数据库: ./redis-cli
(14).远程访问redis:
开启端口6379: firewall-cmd --add-port=6379/tcp --permanent
重新加载: firewall-cmd --reload
修改redis.conf配置文件:
1.进入配置文件: vi /usr/local/redis/bin/redis.conf
2.注释--bind 127.0.0.1
3.禁用保护模式: protected-mode yes 改为 no
4.保存退出
5.查看redis进程:
通过端口号查看: netstat -anp | grep 6379
通过名称查看: ps aux | grep redis
6.停止进程: kill 45012
7.重新启动: ./redis-server redis.conf
(15).测试远程连接--参考图5
图1
图2
图3
图4
图5
七.安装vsftpd服务
! 建议安装FileZilla等工具
(1)下载地址: https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/vsftpd-3.0.3-34.el8.x86_64.rpm
安装方式二: yum install vsftpd
(2).创建安装目录: mkdir /usr/local/vsftpd
(3).将下载的vsftpd拷贝到安装目录下: cp -rf vsftpd-3.0.3-34.el8.x86_64.rpm /usr/local/vsftpd
(4).安装: rpm -ivh vsftpd-3.0.3-34.el8.x86_64.rpm
(5).创建用户密码(简单密码需要连输入两次):useradd ftpuser passwd ftpuser
(6).查看ftp服务状态: getsebool -a | grep -i ftp
(7).修改服务:
setsebool -P ftpd_full_access on
setsebool -P tftp_home_dir on
(8)设置开机是否自启:
开启: systemctl enable vsftpd.service
关闭: systemctl disable vsftpd.service
(9).查看是否更改成功: systemctl list-unit-files | grep vsftp
(10).启动vsftp: systemctl start vsftpd.service
报错误--参考图1:
查看是否端口已经被占用: netstat -anp | grep 21
如果占用: kill 103300 (停止进程--参考图2--的vsftpd为列)
重启服务: systemctl start vsftpd.service
(11).测试远程连接
开放端口21: firewall-cmd --add-port=21/tcp --permanent
重新加载: firewall-cmd --reload
测试,注意使用主动连接--参考图3
图1
图2
图3
八. 运行打包项目后生成的war包
! 至于如何将本地idea中的项目打包,我也不说了.我使用的是maven
(1).准备一个项目war包
(2).上传war包到tomcat: /usr/local/tomcat/apache-tomcat-9.0.60/webapps/ ---(参考图1)
(3).到bin目录运行tomcat: cd /usr/local/tomcat/apache-tomcat-9.0.60/bin/
运行: ./startup.sh
(4).回到webapp目录会多一个刚生成的项目目录
(5).删除原目录的ROOT目录或者重命名其他名字,将生成的新目录重命名为ROOT --(参考图2)
(6).重新再运行tomcat
(7).测试浏览器访问: 192.168.153.10:8080 --效果(参考图3)
(8).端口号使用的是tomcat的端口号。远程访问需要开放对应端口号
图1
图2
图3
九. 运行打包项目后生成的jar包
(1).准备好jar包(注意本身项目运行端口尽量不要和已经在运行的程序端口相同,否则在运行jar包时会报端口占用)
(2).创建一个目录,用于保存jar包
(3).上传jar包到linux--参考图1
(4).需要开放项目打包前运行所对应的端口,才能远程访问
(5).运行jar包: java -jar 项目名.jar (如果是ssh窗口关闭则停止运行)
(6).将ssh窗口关闭后还能继续运行: nohup java -jar 项目名.jar > 日志文件名.log 2>&1
日志文件会自行创建
启动后没有启动信息,所有内容都在日志文件中
图2--为第1种启动
图3--为第2种启动
(7).测试访问: 192.168.153.10:666 (测试项目我设置的是666端口) 图4
(8).出现端口占用情况:
查看正在使用的端口: ss -ant
通过端口号查看进程: netstat -anp | grep 端口号
停止进程: kill 进程号
图1
图2
图3
图4
十.Nginx服务器基础配置
1.修改Nginx的默认访问
(1).创建一个测试目录: mkdir /test
(2).上传一个测试使用的html到测试目录
(3).进入nginx安装目录: cd /usr/local/nginx/
(4).修改配置文件--参考图1: vi ./conf/nginx.conf
我修改测试内容如下:
server {
listen 80;
server_name localhost;
location / {
root /test;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
(5).查看nginx进程--参考图2: netstat -anp | grep 80
(6).停掉nginx进程: kill 118803
(7).重新启动: ./sbin/nginx
(8).浏览器测试访问--参考图3: 192.168.153.10
图1
图2
图3
2.配置Nginx的测试域名
(1).进入nginx安装目录: cd /usr/local/nginx/
(2).修改配置文件--参考图1: vi ./conf/nginx.conf
(3).查看nginx进程: netstat -anp | grep 80
(4).停掉nginx进程: kill ????
(5).重新启动: ./sbin/nginx
(6).修改windows配置文件: C:\Windows\System32\drivers\etc\
1.取消hosts文件只读权限
2.添加测试域名映射
(--参考图2--)
(6).浏览器测试访问--参考图3: www.LoveYou.com
图1
图2
图3
3.Nginx实现Tomcat的反向代理
(1).搭建测试环境
方式一.准备几个不同运行端口的jar
方式二.部署多个tomcat
(这里使用tomcat的方式,并准备部署3个tomcat)
1.直接将安装好并部署了项目的tomcat完整的复制三份(--参考图1)
mkdir /usr/local/tomcat/tomcat_test
cp -rf /usr/local/tomcat/apache-tomcat-9.0.60 /usr/local/tomcat/tomcat_test/
cd /usr/local/tomcat/tomcat_test
cp -rf apache-tomcat-9.0.60/ apache-tomcat-9.0.60-1
cp -rf apache-tomcat-9.0.60/ apache-tomcat-9.0.60-2
cp -rf apache-tomcat-9.0.60/ apache-tomcat-9.0.60-3
rm -rf apache-tomcat-9.0.60
2.修改每个tomcat配置文件--参考图2
vi /usr/local/tomcat/tomcat_test/apache-tomcat-9.0.60-1/conf/server.xml
vi /usr/local/tomcat/tomcat_test/apache-tomcat-9.0.60-2/conf/server.xml
vi /usr/local/tomcat/tomcat_test/apache-tomcat-9.0.60-3/conf/server.xml
3.修改每个tomcat启动后默认访问的页面,使其访问的页面内容区分开
4.自定义一个可执行的脚本文件,用来快速启动/关闭三个tomcat
touch tomcat_startup.sh
vi tomcat_startup.sh --内容参考图3右
touch tomcat_shutdown.sh
vi tomcat_shutdown.sh --内容参考图3左
chmod +x tomcat_shutdown.sh
chmod +x tomcat_startup.sh
5.开放三个tomcat的远程访问端口
firewall-cmd --add-port=8085-8087/tcp --permanent
firewall-cmd --reload
6.启动: ./tomcat_startup.sh
7.依次使用对应端口测试三个tomcat的搭建是否成功 --参考图4
(2).打开nginx配置,简单实现tomcat反向代理
cd /usr/local/nginx/
vi conf/nginx.conf
配置详情--参考图5
(3).如果nginx已在运行中,则需要先停掉进程再启动nginx
查看所有正在使用的端口: ss -ant
查看指定正在使用端口的进程号: netstat -anp | grep 80
停止进程: kill 进程号
启动nginx: ./nginx
(4).测试--参考图6(效果:访问同一地址,会自动让用户访问不同的tomcat服务器,达到负载均衡的效果)
图1
图2
图3
图4
图5
图6
十一. 模拟搭建Redis集群环境(带密码)
1.创建目录
mkdir /usr/local/redis-colony
mkdir /usr/local/redis-colony/data
mkdir /usr/local/redis-colony/conf
mkdir /usr/local/redis-colony/log
3.配置redis公共配置文件
cp -rf /tools/redis-6.0.6/redis.conf /usr/local/redis-colony/conf/
vi /usr/local/redis-colony/conf/redis.conf
(--修改参考图1--)
2.完整复制6份已经安装好的redis
先复制一份redis
cp -rf /usr/local/redis /usr/local/redis-colony/
cd /usr/local/redis-colony/
修改配置文件(--参考图2--)
vi redis/bin/redis.conf
再拷贝6份redis
cp -rf redis/ redis1
cp -rf redis/ redis2
cp -rf redis/ redis3
cp -rf redis/ redis4
cp -rf redis/ redis5
cp -rf redis/ redis6
拷贝完成后删除多余的一份
rm -rf redis
再将剩下6份的其中5份redis.conf文件中端口分别改为不同的端口(也就是说6个redis同时运行端口不冲突就行)
3.编写一个redis启动脚本,方便启动6个redis(内容参考图3)
touch /usr/local/redis-colony/redis-6.sh
vi /usr/local/redis-colony/redis-6.sh
chmod +x redis-6.sh
4.执行启动脚本: ./redis-6.sh
5.查看是否全部启动成功: ps aux | grep redis (参考图4)
6.开放防火墙端口:
firewall-cmd --add-port=6380-6385/tcp --permanent
firewall-cmd --add-port=16380-16385/tcp --permanent
firewall-cmd --reload
7.创建redis集群(创建成功后效果--参考图5)
cd /tools/redis-6.0.6/src/
./redis-cli --cluster create 192.168.153.10:6380 192.168.153.10:6381 192.168.153.10:6382 192.168.153.10:6383 192.168.153.10:6384 192.168.153.10:6385 --cluster-replicas 1 -a 134313
8.测试--参考图6--(环境搭建完成)
cd /usr/local/redis-colony/redis1/bin/
./redis-cli -c -h 192.168.153.10 -p 6380
注意:
由于设置了密码的原因
每次进入redis都需要输入一次密码
每次创建一个键值对时根据redis中哈希算法发生跳转后不会立即直接添加,你需要输入密码后,再次重新创建
图1
图2
图3
图4
图5
图6
十二. 使用云服务器安装需要注意的内容
! 我这里使用的是腾讯云
! 使用工具远程连接云服务器需要输入密码连接,账户默认root,首次使用需要在云服务器重置密码(–参考图1–)
! 云服务器镜像版本(centos 8)
! 优先启动防火墙: systemctl start firewalld
! 当每次开放防火墙端口时,还需要添加格外的防火墙规则(–参考图2–)
警告:在redis没有设置密码情况下不要添加6379端口规则
! 测试ip,使用公网ip
图1
图2
优先安装vsftpd(安装步骤一致)因为需要重启Linux
! 安装可选择安装方式二快捷安装
! 查看服务状态会报一个错误: getsebool: SELinux is disabled
解决: vi /etc/selinux/config
(修改SELINUX=disabled --> SELINUX=permissive)
重启Linux
继续安装
1.安装JDK(安装步骤一致)
2.安装Tomcat(安装步骤一致)
3.安装MySQL(安装步骤一致)
4.安装Nginx(安装步骤一致)
5.安装Redis(安装步骤一致)
(一定要配置密码,否则可能分分钟被攻击)
! 开放远程连接一定要设置redis密码(–参考图1–官方文档)
! 设置临时密码:
./redis-cli
set requirepass 134313
(注意:重启一次后就会失效,需要永久生效,请修改配置文件)
图1