文章目录
1、配置需要开放的端口
看自己需要开放以下端口:
- Redis : 6379端口
- Mysql : 3306端口
- HTTP : 80端口
- HTTPS : 443端口
- SSH : 22端口
2、安装 JDK
2.1、直接下载安装
- 查看JDK版本,找到想要安装的版本
yum list | grep jdk
- 以 jdk 1.8 为例下载安装
yum install -y java-1.8.0-openjdk.x86_64
- 出现
Complete!
或完毕!
安装完成。
- 默认安装到
/usr/lib/jvm
目录下- 查看JDK信息,输入命令:
java -version
- 查看JDK信息,输入命令:
2.2、手动上传安装
1、官网下载最新稳定JDK
点击 下载官网最新稳定JDK
在页面下方找到:
下载jdk-8u351-linux-x64.tar.gz
2、新建一个安装包的文件夹
- 任意地方创建文件夹,输入命令:
mkdir /usr/local/java
3、上传安装包并解压
- 输入命令:
tar -zxvf jdk-8u351-linux-x64.tar.gz
4、修改配置文件/etc/profile,配置环境变量
- 输入命令:
vim /etc/profile
▼ 在配置文件最下方添加下面三种任意一种:
# 注意:JAVA_HOME=/usr/local/java/jdk1.8.0_261 就是你自己的目录 #java environment 1 export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar export PATH=$PATH:${JAVA_HOME}/bin #java environment 2 export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ export PATH=$PATH:$JAVA_HOME/bin #java environment 3 export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
7、重新加载配置
- 重新加载配置:
source /etc/profile
- 查看安装情况:
java -version
能查到 java 信息就安装好了!
3、安装 Tomcat
Tomcat建议使用非Root用户安装并启动
首先,放行tomcat需要使用的8080端口的外部访问权限
CentOS系统默认开启了防火墙,阻止外部网络流量访问系统内部
所以,如果想要Tomcat可以正常使用,需要对Tomcat默认使用的8080端口进行放行
放行有2种操作方式:
- 关闭防火墙
- 配置防火墙规则,放行端口
# 以下操作2选一即可 # 方式1:关闭防火墙 systemctl stop firewalld # 关闭防火墙 systemctl disable firewalld # 停止防火墙开机自启 # 方式2:放行8080端口的外部访问 firewall-cmd --add-port=8080/tcp --permanent # --add-port=8080/tcp表示放行8080端口的tcp访问,--permanent表示永久生效 firewall-cmd --reload # 重新载入防火墙规则使其生效
防火墙的配置非常复杂,建议选择方式1,直接关闭防火墙一劳永逸。
以root用户操作,创建tomcat用户
# 使用root用户操作 useradd tomcat # 可选,为tomcat用户配置密码 passwd tomcat
下载Tomcat安装包
# 使用root用户操作 wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.tar.gz # 如果出现https相关错误,可以使用--no-check-certificate选项 wget --no-check-certificate https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.tar.gz
解压Tomcat安装包
tar -zxvf apache-tomcat-8.5.87.tar.gz
配置环境变量
# 使用root用户操作(最后一行增加如下) vim /etc/profile export CATALINA_HOME=/opt/apache-tomcat-8.5.87 # 生效命令 source /etc/profile
切换到tomcat用户并启动tomcat
su - tomcat # 启动 cd /opt/apache-tomcat-8.5.87/bin ./startup.sh
tomcat启动在8080端口,可以检查是否正常启动成功
netstat -anp | grep 8080
至此,Tomcat安装配置完成。
4、CentOS 安装 MySQL
注意:安装操作需要root权限
4.1、MySQL5.7
4.1.1、安装
配置yum仓库
# 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 安装Mysql yum库 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
由于MySQL并不在CentOS的官方仓库中,所以我们通过上述rpm命令:
- 导入MySQL仓库的密钥
- 配置MySQLQ的yum仓库
使用yum安装MySQL
# yum安装Mysql yum -y install mysql-community-server
安装完成后,启动MySQL并配置开机自启动
systemctl start mysqld # 启动 systemctl enable mysqld # 开机自启
MySQL安装完成后,会自动配置为名称叫做:
mysqld
的服务,可以被systemctl所管理检查MySQL的运行状态
systemctl status mysqld
4.1.2、配置
主要配置管理员用户root的密码以及配置允许远程登录的权限。
获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码 grep 'temporary password' /var/log/mysqld.log
登陆MySQL数据库系统
# 执行 mysql -uroot -p # 解释 # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root # -p,表示使用密码登陆 # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
修改root用户密码
# 在MySQL控制台内执行 ALTER USER 'root'@'localhost' IDENTIFIED BY '密码'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
[扩展],配置root的简单密码
我们可以给root设置简单密码,如123456.
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码
# 如果你想设置简单密码,需要降低Mysql的密码安全级别 set global validate_password_policy=LOW; # 密码安全级别低 set global validate_password_length=4; # 密码长度最低4位即可 # 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样) ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';
[扩展],配置root运行远程登录
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
请注意,允许root远程登录会带来安全风险
# 授权root远程登录 grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option; # IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址 # 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同 # 刷新权限,生效 flush privileges;
创建普通用户用于外部连接
# 创建普通用户(可以创建多个,用逗号隔开) CREATE USER 用户名 IDENTIFIED BY '你的密码' ;
CREATE USER
用户1 IDENTIFIED BY '密码',
用户2 IDENTIFIED BY '密码';
退出MySQL控制台页面
# 退出命令 exit # 或者通过快捷键退出:ctrl + d
检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306
至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。
4.2、MySQL8.0
注意!!!以下操作已无法正常安装MySQL8.0,待更新
4.2.1、安装
配置yum仓库
# 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 安装Mysql8.x版本 yum库 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
使用yum安装MySQL
# yum安装Mysql yum -y install mysql-community-server
安装完成后,启动MySQL并配置开机自启动
systemctl start mysqld # 启动 systemctl enable mysqld # 开机自启
MySQL安装完成后,会自动配置为名称叫做:
mysqld
的服务,可以被systemctl所管理检查MySQL的运行状态
systemctl status mysqld
4.2.2、配置
主要修改root密码和允许root远程登录
获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码 grep 'temporary password' /var/log/mysqld.log
登录MySQL数据库系统
# 执行 mysql -uroot -p # 解释 # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root # -p,表示使用密码登陆 # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
[扩展],配置root的简单密码
我们可以给root设置简单密码,如123456.
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码
set global validate_password.policy=0; # 密码安全级别低 set global validate_password.length=4; # 密码长度最低4位即可
允许root远程登录,并设置远程登录密码
默认情况下,root用户是不允许远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
请注意,允许root远程登录会带来安全风险
# 第一次设置root远程登录,并配置远程密码使用如下SQL命令 create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc # 后续修改密码使用如下SQL命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
创建普通用户并授权
# 授权语法 GRANT privileges ON databasename.tablename TO 'username'@'host'
参数 | 含义 |
---|---|
privileges | 用户的操作权限:insert,select,update等,所有权限使用ALL |
databasename | 指定可以操作的数据库,通配符“*”表示所有库 |
tablename | 指定可以操作的数据表,通配符“*”表示所有表 |
host | 指定主机可以登录,localhost:表示本地用户可用,%:通配符表示允许任意远程主机登陆 |
退出MySQL控制台页面
# 退出命令 exit # 或者通过快捷键退出:ctrl + d
检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306
至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。
5、安装 Redis
配置
EPEL
仓库EPEL 的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。EPEL则为服务器版本提供大量的rpm包(yum程序所使用的程序安装包,类似Windows的exe),而且大多数rpm包在官方 repository 中是找不到的。
# root执行 yum install -y epel-release
安装redis
# root执行 yum install -y redis
启动redis
# root执行 # 使用systemctl管控,服务名:redis systemctl enable redis # 开机自启 systemctl disable redis # 关闭开机自启 systemctl start redis # 启动 systemctl stop redis # 关闭 systemctl status redis # 查看状态
放行防火墙,redis使用端口6379
# 方式1(推荐),关闭防火墙 systemctl stop firewalld # 关闭 systemctl disable firewalld # 关闭开机自启 # 方式2,放行6379端口 firewall-cmd --add-port=6379/tcp --permanent # 放行tcp规则下的6379端口,永久生效 firewall-cmd --reload
至此,redis安装完成。
6、安装 Nginx
Nginx同样需要配置额外的yum仓库,才可以使用yum安装
安装Nginx的操作需要root身份
安装yum依赖程序
# root执行 yum install -y yum-utils
手动添加,nginx的yum仓库
yum程序使用的仓库配置文件,存放在:
/etc/yum.repos.d/
内。# root执行 # 创建文件使用vim编辑 vim /etc/yum.repos.d/nginx.repo # 填入如下内容并保存退出 [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
通过如上操作,我们手动添加了nginx的yum仓库
通过yum安装最新稳定版的nginx
# root执行 yum install -y nginx
启动
# nginx自动注册了systemctl系统服务 systemctl start nginx # 启动 systemctl stop nginx # 停止 systemctl status nginx # 运行状态 systemctl enable nginx # 开机自启 systemctl disable nginx # 关闭开机自启
配置防火墙放行
nginx默认绑定80端口,需要关闭防火墙或放行80端口
# 方式1(推荐),关闭防火墙 systemctl stop firewalld # 关闭 systemctl disable firewalld # 关闭开机自启 # 方式2,放行80端口 firewall-cmd --add-port=80/tcp --permanent # 放行tcp规则下的80端口,永久生效 firewall-cmd --reload # 重新加载防火墙规则
至此,Nginx安装配置完成。
关于 Nginx 配置参数可以参阅 nginx配置详解
7、安装 Zookeeper
下载Zookeeper安装包,并解压
cd /opt/ # 下载 wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz # 解压 ar -zxvf apache-zookeeper-3.5.9-bin.tar.gz # 重命名 mv apache-zookeeper-3.5.9-bin zookeeper-3.5.9
创建zookeeper的数据和日志目录
cd zookeeper-3.5.9/ # 数据目录 mkdir -p data # 日志目录 mkdir -p log
修改 Zookeeper 配置
zoo_sample.cfg 是官方提供的模板配置,用户按需配置就行。
cd conf/ # 把zoo_sample.cfg复制并重命名为zoo.cfg cp -r zoo_sample.cfg zoo.cfg # 修改zoo.cfg配置文件 vi zoo.cfg # 修改内容如下 # 1、修改数据目录和日志目录 dataDir=/opt/zookeeper-3.5.9/data dataLogDir=/opt/zookeeper-3.5.9/log # 2、修改端口号,默认是2181 clientPort=22181 # 3、zookeeper集群配置(根据需要配置,这里不写例子了)
启动 Zookeeper
cd /opt/zookeeper-3.5.9/bin # 启动命令 sh zkServer.sh start
8、项目部署
8.1、后台
- clean --> package --> 一个jar/war包
- war包扔到服务器 tomcat 的 webapps 下重启 tomcat 即可
- 如果端口不是tomcat默认的8080可修改tomcat的配置文件
tomcat安装路径/conf/server.xml
- tomcat配置文件参数详解可参阅 干货:详解 Tomcat 配置文件 server.xml
- 如果Linux服务器要启动多个tomcat,可以参考 linux部署多个tomcat
- 如果端口不是tomcat默认的8080可修改tomcat的配置文件
- jar包随便找个地方然后通过命令启动即可,具体命令如下
- 如果lib文件夹下有未打包的外部依赖,原地址下的lib文件夹也需要一起上传,与jar包放一起就行
①直接启动 jar 包
java -jar xxx.jar
- 缺点:当前 ssh 窗口会被锁定,不能再操作其他命令,如果需要执行其他命令,则需要打断进程,可按CTRL + C打断程序运行,或直接关闭窗口,程序也会退出
- 可以通过命令行参数来配置启动参数,比如:
java -jar xxx.jar --port=8080
②后台启动 jar 包
java -jar xxx.jar &
- 缺点:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行
③后台不挂断启动 ( nohup )
nohup java -jar xxx.jar &
- 用 nohub 命令启动 jar 包,是在后台不挂断运行,关闭终端窗口或者 CTRL + C 命令也不会终止程序
- 当用 nohub命令启动 jar 包的时候,如果不指定日志输出文件,则所有的输出都会被重定向到 nohub.out 的文件中
- 指定日志输出的启动:
nohup java -jar xxx.jar >log.out &
- 指定配置文件启动:
nohup java -jar xxx.jar --spring.profiles.active=prod > log.out &
更多功能参数可自行查阅。
如果想停止进程可以使用kill
指令
8.2、前端
- 前他代码打包扔到服务器(随便找个地都行)
- 修改 Nginx 配置文件
Nginx安装路径/nginx.conf
,指向你的前台项目- 如果不知道路径可输入命令查看:
nginx -t
- 如果报错刻去
/var/log/nginx/
查看 Nginx 日志
- 如果不知道路径可输入命令查看:
- 重新加载 Nginx 配置即可:
nginx -s reload
http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; # 开启gzip后,浏览器加载xxx.js时会加载经过gzip压缩之后的文件a.js.gz,大大提升响应速度 gzip on; include /etc/nginx/conf.d/*.conf; server { listen 80; server_name 8.130.160.129; # 对 "/" 启用反向代理 location / { # 项目部署路径 root /usr/local/server/build; # 解决404问题(三元表达式) try_files $uri $uri/ /index.html; # 默认首页,多个用空格隔开 index index.html; } # 访问静态资源(如图片等) location /img { root /usr/local/server/static; } # 错误页面路由:出现对应状态码时用 50x.html 响应请求 error_page 500 502 503 504 /50x.html; # 访问 50x.html 的目录 location = /50x.html { root /usr/local/server/build/error; } } }