1.安装配置JDK
1.1.创建目录并上传文件
在/usr/local
目录下创建mytools
目录,用于存放后续所有的安装文件。
# 创建目录
mkdir /usr/local/mytools
# 上传文件
rz jdk-8u151-linux-x64.tar.gz
1.2.解压JDK压缩包
将上传至/usr/local/mytools/
目录下jdk压缩包文件,解压至指定的/usr/local
目录中
# 切换目录
cd /usr/local/mytools
# 解压文件
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local
在解压的时候 -C 是解压到指定目录中,一定要加-C参数,而且区分大小写的。 &&可将多条命令合成一行
cd /usr/local/mytools && tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local
1.3.配置JDK环境变量
执行 vim /etc/profile
命令,在文件最后添加如下内容。
#java environment
export JAVA_HOME=请修改JDK解压路径
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
注意!请修改
export JAVA_HOME=请修改JDK解压路径
对应的JDK路径。
1.4.设置环境变量生效
# 设置环境变量生效,一定要执行!!!
source /etc/profile
# 查看环境变量是否配置成功
java -version
2.安装配置Tomcat
2.1.上传Tomcat并解压
将tomcat压缩包文件上传至/usr/local/mytools
目录,并解压到/usr/local
目录中。
# 上传Tomcat
rz apache-tomcat-8.5.20.tar.gz
# 解压Tomcat到指定目录
tar -zxvf apache-tomcat-8.5.20.tar.gz -C /usr/local
2.2.启停Tomcat
# 切换目录
cd /usr/local/apache-tomcat-8.5.20/bin
# 通过startup.sh方式启动Tomcat
./startup.sh
# 通过shutdown.sh方式停止Tomcat
./shutdown.sh
# 通过catalina.sh方式启动Tomcat
./catalina.sh run
tomcat启动后,外部浏览器无法访问,原因:防火墙中8080端口未开放。而CentOS7
防火墙firewalld
默认是开启的,下面记录如何使用firewalld
开放Linux端口:
# 开启端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 删除指定端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
# 查询指定端口号是否开启:
firewall-cmd --query-port=8080/tcp
# 重启防火墙(不重启以上的设置是不会生效的):
firewall-cmd --reload
# 查询有哪些端口是开启的:
firewall-cmd --list-port
如何查看远程服务器的日志:
# 切换目录
cd /usr/local/apache-tomcat-8.5.20/logs
# 实时查看日志文件
tail -f catalina.out
# 实时查看日志文件后一百行
tail -100f catalina.out
查看tomcat启动进程以及使用如何强制杀掉进程:
# 查看tomcat启动进程信息
ps -ef|grep java
# 强制杀掉进程
kill -9 进程PID
2.3.Tomcat自启动配置
切换到指定目录下,并上传tomcat.service文件。
# 切换目录
cd /usr/lib/systemd/system
# 上传tomcat.service文件
rz tomcat.service
# 编辑tomcat.service文件
vim tomcat.service
# 编辑tomcat.service文件
改成我们自己的路径(我自己的都放在/usr/local/里面)
修改tomcat.service文件中的tomcat和jdk的路径
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment='JAVA_HOME=/usr/local/jdk1.8.0_151'
Environment='CATALINA_PID=/usr/local/apache-tomcat-8.5.20/tomcat.pid'
Environment='CATALINA_HOME=/usr/local/apache-tomcat-8.5.20/'
Environment='CATALINA_BASE=/usr/local/apache-tomcat-8.5.20/'
#Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
PIDFile=/usr/local/apache-tomcat-8.5.20/tomcat.pid
ExecStart=/usr/local/apache-tomcat-8.5.20/bin/catalina.sh start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置Tomcat自启动服务:
# 设置自动启
systemctl enable tomcat
# 重载服务
systemctl daemon-reload
# 启动服务
systemctl start tomcat
重启或关闭虚拟机:
# 重启
reboot 或者 shutdown -r now
# 关机
poweroff 或者 shutdown -h now
3.安装配置MySQL
官网下载MySQL5.7.30的RPM安装包。
3.1.卸载CentOS7系统自带的mariadb
先检查有 没有安装mariadb
数据库。如果有安装,则卸载mariadb
。
# 先检查有没有安装mariadb
rpm -qa|grep mariadb
# 卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
# 再次查看,mariadb已删除
rpm -qa|grep mariadb
3.2.安装依赖库
安装libaio、perl、net-tools
等库。
yum -y install libaio perl net-tools
3.3.上传MySQL并解压
将mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
文件上传至/usr/local/mytools
目录,创建mysql
目录并将安装文件解压到此目录。
# 切换目录
cd /usr/local/mytools
# 上传MySQL
rz mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
# 创建mysql目录
mkdir mysql
# 解压
tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mytools/mysql
3.4.安装MySQL
切换至/usr/local/mytools/mysql
目录,并逐一安装MySQL对应服务组件。
#进入到mysql目录下
cd /usr/local/mytools/mysql
#开始安装,-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度
rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
以上组件安装完成之后,直接启动mysql服务并完成初始化。
systemctl start mysqld
安装完成后的服务名叫mysqld
3.5.配置MySQL
3.5.1.修改登录密码
查询生成的临时密码并登录mysql。
# 查询临时密码
grep "password" /var/log/mysqld.log
2022-10-12T13:19:16.313408Z 1 [Note] A temporary password is generated for
root@localhost: o8N#/CfWD+sh
# 登录mysql
mysql -u root -p
如果把密码复制了,提示有语法错误,是因为包含特殊字符(如 %
、&
、(
、)
、$
、#
等)的命令
我们只要把密码用单引号或者双引号包裹起来,像这样
因为是本地测试环境,所以想把密码改的简单点。修改MySQL的密码策略及密码长度。
# 查看mysql初始的密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
# 设置密码校验策略(0 or LOW),要不密码太LOW不让你过
mysql> set global validate_password_policy=0;
# 设置密码校验长度,要不密码太短不让你过(多次测试发现密码最小长度为4位)
mysql> set global validate_password_length=4;
# 更新密码
mysql> set password = password("新密码");
# 输入后使修改生效
mysql> FLUSH PRIVILEGES;
# 退出mysql
mysql> exit
授权外网登录权限:登录mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
刷新权限
flush privileges;
将MySQL
访问端口3306添加到firewalld
防火墙允许访问列表中。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port
firewall-cmd --query-port=3306/tcp
把我们的脚本也放到tools文件夹里面去
exit
ls
mysql -uroot -p密码
创建数据库:
#创建数据库
create database vue;
#使用数据库
use vue;
#导入sql文件
source /tools/vue.sql;
查看
select * from 表名;
exit
把后台跑起来,将我们准备好的jar/war包以解压方式打开
进入WEB-INF目录中
点击classes文件夹
找到jdbc.properties文件把里面的:
都做好后,包jar/war包放到tomcat下的webapps:
cd /usr/local/apache-tomcat-8.5.20/
#进入apache-tomcat-8.5.20/下面的webapps
cd webapps/
进入webapps后把jar/war包
rz
4.安装Nginx
4.1添加Nginx官方yum源
添加 nginx 官方提供的yum源,这个过程需要联网且时间较长,请耐心等待。
rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm
Linux里rpm包到底是干什么用的?
Linux RPM全称是“RedHat Package Manager”,最早是Red Hat公司开发的,后来在CentOS、Fedora、SUSE都用它。而rpm包则是软件编译完成后按照RPM机制打包起来的一个文件,可以用rpm命令安装的一个软件安装包,它省去了Linux软件安装中编译的步骤,安装成功后软件就可以用了。
4.2.使用yum安装Nginx
yum -y install nginx
yum方式安装nginx,它的安装根目录为/etc/nginx。
查看nginx版本:
rpm -qa | grep nginx
4.3.配置防火墙
将nginx默认访问端口80进入到防火墙中。
#开放端口和刷新、查看
firewall-cmd --zone=public --add-port=80/tcp --permanent &&
firewall-cmd --reload &&
firewall-cmd --list-port
4.4.启动后效果
# 启动nginx服务
systemctl start nginx
# 查询nginx服务启动状态
systemctl status nginx
启动成功后,在浏览器中输入访问地址,效果如下:
5.SPA项目发布
5.1.虚拟域名设置
修改window系统中hosts文件,添加虚拟域名映射关系。文件位置:C:\Windows\System32\drivers\etc\hosts
。
另外,此文件有可能出现由于当前用户权限不够,出现无法修改的情况?解决方案:将此文件复制到d硬盘任一目录,修改后,再复制替换C:\Windows\System32\drivers\etc\hosts
原文件
5.2.SPA项目打包
第一步:HbuilderX打包vue项目白屏问题。
将项目目录下的config/index.js
文件中,将build对象下的assetsPublicPath中的“/”,改为“./”后。
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {},
...
},
build: {
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
//修改前
//assetsPublicPath: '/',
//修改后
assetsPublicPath:'./',
...
}
}
第二步:HbuilderX打包vue项目,element-ui的icon图标无法正常显示问题。
使用vue-cli3脚手架搭建的项目,在打包文件上服务器的时候,其他的css和js样式都能正确加载出路径,但是element的icon图标却不能正常加载出来。事实上是打包时候读取的文件路径多了两层,找到build/utils.js
目录中的路径,看看function generateLoaders();
方法, 指定该选项时提取CSS发现少了个公共路径,加上pubilcPath。
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
// 解决icon路径加载错误
publicPath:'../../'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
第三步:SPA项目打包
打包成功之后,会在当前项目目录下生成一个dist目录,而目录下的文件就是打包生成。
5.3.Nginx动静分离
5.3.2.配置
将SPA项目压缩并上传到/usr/nginx/html目录,再解压。
# 创建目录
mkdir -p /usr/nginx/html
# 切换目录
cd /usr/nginx/html
# 上传SPA项目
rz dist.zip
# 解压
unzip dist.zip
修改nginx核心配置文件/etc/nginx/conf.d
。
# 切换目录
cd /etc/nginx/conf.d/
# 备份
cp default.conf default.conf.bak
# 编辑conf.d文件
vim default.conf
并添加SPA项目访问映射规则。
location / {
#该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍
try_files $uri $uri/ /index.html;
}
最后,重启nginx服务并访问SPA项目。
# 重启nginx服务
systemctl restart nginx
5.4.Nginx实现反向代理
修改nginx核心配置文件/etc/nginx/conf.d
,配置nginx反向代理
server {
listen 80;
server_name www.zking.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location ^~ /edu/ {
proxy_pass http://127.0.0.1:8080/;
}
location ^~ /zki/ {
proxy_pass http://127.0.0.1:8081/;
}
}
proxy_pass说明是动态请求,需要进行转发,比如代理到Tomcat上。
直接在浏览器中输入访问地址:http://www.zking.com/edu/ 。提示访问错误,如下所示:
切换到nginx日志目录,查看日志信息。
# 切换到nginx的日志目录
cd /var/log/nginx/
# 查看日志信息
tail -f error.log
解决方案:关闭SeLinux
setsebool -P httpd_can_network_connect 1
执行成功之后,再次访问http://www.zking.com/edu。
5.5.Nginx实现负载均衡
拷贝一个Tomcat,将其端口信息修改为8081,并将8081端口加入到防火墙允许访问规则中,然后分别启动这两台Tomcat。(这是在一个虚拟机上完成的,如果有多个就不需要样)
复制一个tomcatl,然后指定一个位置
cp /usr/local/apache-tomcat-8.5.20 -C xxx
到tomcat目录下进入到tomcat的conf
cd conf/
查看该目录下
ls
然后编辑server.xml文件(vi 是默认的,也可以用vim,但是要下载 ,vi编辑是没有颜色区分的)
vi server.xml
需要修改三个地方
修改nginx核心配置文件/etc/nginx/conf.d
,配置nginx负载均衡
upstream tomcats{
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=2;
}
server {
listen 80;
server_name www.zking.com;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location ^~ /edu/ {
proxy_pass http://127.0.0.1:8080/;
}
location ^~ /api/ {
proxy_pass http://tomcats/;
}
}
第一,通过upstream来定义一组Tomcat,并指定负载策略(IPHASH、加权论调、最少连接),健康检查策略(Nginx可以监控这一组Tomcat的状态)等。 第二,将proxy_pass替换成upstream指定的值即可。