一 基础环境准备
1.1 安装docker环境
1.1.1 卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
1 | sudo yum remove docker \ |
1.1.2 设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
1 | sudo yum install -y yum-utils \ |
使用以下命令来设置稳定的仓库。
1 | sudo yum-config-manager \ |
1.1.3 安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
1 | sudo yum install docker-ce docker-ce-cli containerd.io |
也可以使用脚本安装
使用官方安装脚本自动安装
安装命令如下:
1 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun |
也可以使用国内 daocloud 一键安装命令:
1 | curl -sSL https://get.daocloud.io/docker | sh |
1.1.4 F&Q
1) 如果运行docker 命令出现
1 | Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? |
时,表明docker进程未运行。
解决办法
1 | systemctl daemon-reload |
2) 若出现以下问题
package docker-ce-3:19.03.11-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
解决方法:
进入阿里云镜像地址:https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/ 找到你想要的或者最新的containerd.io包,拼接在阿里云地址后面,
如下:
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
然后再执行
1 | yum install docker-ce docker-ce-cli containerd.io |
即可。
1.1.5 配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon
配置文件/etc/docker/daemon.json
来使用加速器
1 | sudo mkdir -p /etc/docker |
1.2 安装java环境
1.2.1 卸载历史版本
1 查看是否有历史版本
1 | java -version |
查看已安装java版本
1 | yum list installed |grep java |
2 卸载历史版本
卸载JDK相关文件
1 | yum -y remove *openjdk* |
卸载tzdata-java
1 | yum -y remove tzdata-java.noarch |
1.2.2 安装新版的java
1 新建目录
1 | mkdir -p /usr/local/java |
2 上传安装包到该目录并解压
如果本地不能上传,可以从远程使用命令
1 | scp root@192.168.0.104:/home/software/jdk-8u221-linux-x64.tar.gz /usr/local/java |
如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下
1
2 #scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
scp命令格式如下
1 | scp [可选参数] file_source file_target |
解压安装包
1 | tar -xvzf jdk-8u221-linux-x64.tar.gz |
3 设置环境变量
先备份环境变量
1 | cp /etc/profile /etc/profile.bak |
在原始文件的末尾加上
1 | export JAVA_HOME=/usr/local/java/jdk1.8.0_221 |
使环境变量立即生效
1 | source /etc/profile |
检查环境变量是否生效
1 | java -version |
二 防火墙及安全
2.1 centos7 查看防火墙
2.1.1 查看firewall服务状态
1 | systemctl status firewalld |
2.1.2 查看firewall的状态
1
firewall-cmd --state
1 | firewall-cmd --state |
2.1.3 开启、重启、关闭、firewalld.service服务
1 | # 开启 |
其他命令
1 | #停止firewall |
2.2 防护墙规则
2.2.1 查看防火墙规则
1 | firewall-cmd --list-all |
操作防火墙
1 | # 查询端口是否开放 |
2.3 切换为iptables防火墙
切换到iptables首先应该关掉默认的firewalld,然后安装iptables服务。
2.3.1 关闭firewall
1 | service firewalld stop systemctl disable firewalld.service #禁止firewall开机启动 |
2.3.2 安装iptables防火墙
1 | yum install iptables-services #安装 |
2.3.3 编辑iptables防火墙配置
1 | vi /etc/sysconfig/iptables #编辑防火墙配置文件 |
下边是一个完整的配置文件:
1 | Firewall configuration written by system-config-firewall |
开启iptables
1 | service iptables start #开启 |
2.4 iptables 防火墙
2.4.1 查看防火墙状态
1 | chkconfig iptables --list |
2.4.2 关闭防火墙
1 即时生效,重启后复原
1 | 开启: service iptables start |
2 永久性生效,重启后不会复原
1 | 开启: chkconfig iptables on |
2.4.3 开启指定端口
编辑/etc/sysconfig/iptables
文件
添加以下内容:
1 | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT |
三 常用软件安装
3.1 mysql数据库
3.1.1 docker安装mysql数据库
安装命令如下
1 |
|
示例1
docker run -p 3306:3306 —name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=密码 -d mysql:5.6 —character-set-server=utf8mb4 —collation-server=utf8mb4_unicode_ci —lower_case_table_names=1
示例2
docker run —name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pwd123 -d mysql:5.5 —character-set-server=utf8mb4 —collation-server=utf8mb4_unicode_ci
查看运行情况
1 | docker ps -a |
安装完成后进行连接测试
问题解决
如果启动mysql时出现以下问题,说明需要重启docker
Status: Downloaded newer image for mysql:5.6
0df0b470e099821cccaf261c3c38bee32bfbba95c837b1822f63de051293e144
docker: Error response from daemon: driver failed programming external connectivity on endpoint mymysql (801742e0e4c8a5ac5f04d299f39a385eaf4b385955bd8ae09eb121d83a32f793): (iptables failed: iptables —wait -t nat -A DOCKER -p tcp -d 0/0 —dport 3306 -j DNAT —to-destination 172.17.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name.
重启docker服务后再启动容器
1 | systemctl restart docker |
3.1.2 导入数据
1 | mysql -uroot -p --default-character-set=utf8 demo </home/demo.sql |
具体的导入数据库的命令的格式如下:
1 | mysql -uroot -p --default-character-set=utf8 目标数据库名字 <导入脚本的路径 |
--default-character-set=utf8
是为防止导入的数据出现乱码
创建数据库
1 | CREATE DATABASE 数据库名; |
删除数据库
1 | drop database <数据库名>; |
删除数据表
1 | DROP TABLE table_name ; |
3.1.3 修改密码
下面是具体步骤
一、知道原来的myql数据库的root密码;
1、 在终端命令行输入
1 | mysqladmin -u root -p password "新密码" 回车 ,Enter password: |
【输入原来的旧密码】
2、 登录mysql系统修改, mysql -uroot -p 回车 Enter password: 【输入原来的密码】
1 | mysql>use mysql; |
然后使用刚才输入的新密码即可登录。
3.1.4 F&Q
centos7下解决yum install mysql-server没有可用包
第一步:安装从网上下载文件的wget命令
1 | [root@master ~]# yum -y install wget |
第二步:下载mysql的repo源
1 | [root@master ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm |
第三步:安装mysql-community-release-el7-5.noarch.rpm包
1 | [root@master ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm |
第四步:查看下
1 | [root@master ~]# ls -1 /etc/yum.repos.d/mysql-community* |
会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo
,/etc/yum.repos.d/mysql-community-source.repo
。
第五步:安装mysql
1 | [root@master ~]# yum install mysql-server |
3.1.5 远程访问
设置密码
1 | mysqladmin -u root password '密码' |
设置远程访问权限
1 | GRANT ALL privileges on *.* TO 'root'@'%' identified by '密码' with grant option; |
立即生效
1 | flush privileges ; |
开启相应的mysql的防火墙端口
3.2 redis数据库
3.2.1 docker安装redis
安装命令如下
1 | docker run -d --name myredis -p 6379:6379 redis --requirepass "密码" |
docker run -d —name redis -p 6380:6379 redis —requirepass “密码”
安装完成后进行连接测试
查看运行情况
1 | docker ps -a |
3.2.2 相关命令
清空数据库
1 | flushall |
3.3 mongo数据库
3.3.1 docker安装mongo
安装命令如下:
mongo5.0以上的版本使用mongo来执行mongodb命令已经不支持了,你需要改用mongosh来替代mongo!
先不带密码启动
1 | docker run -itd --name mongo -p 27017:27017 mongo |
然后执行
1 | docker exec -it mongo mongosh |
下面的命令在mongo5.0以后不支持
1 | docker exec -it mongo mongo admin |
创建用户
1 | #创建一个名为 admin,密码为 123456 的用户。 |
3.4 docker安装nginx
安装脚本如下:
1 | docker run --name nginx_test_cors \ |
docker run —name nginx_test_cors -p 8664:80 -v /home/webapps/ROOT:/usr/share/nginx/html:ro -v /home/nginx.conf:/etc/nginx/nginx.conf -d nginx
完整示例
1 | docker run -d -p 80:80 \ |
- -d # 表示在一直在后台运行容器
- -p 80:80 # 对端口进行映射,将本地8081端口映射到容器内部的80端口
- —name # 设置创建的容器名称
- -v # 将本地目录(文件)挂载到容器指定目录;
- —link answer-server:answerserver 这计划是指需要转向本机docker容器的别名
nginx.conf文件示例
1 | user nginx; |
3.5 docker安装minio
1 | docker run -d -p 8100:9000 -p 8101:9001 --restart=always -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=123456Asd -v /usr/local/minio/data:/data minio/minio server /data --console-address ":9001" |
docker run -d -p 8100:9000 -p 8101:9001 —restart=always -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=123456Asd -v /usr/local/minio/data:/data minio/minio server /data —console-address “:9001”
控制台端口为 8101
3.6 docker安装activemq
1 | docker run --name=activemq -d -p 8161:8161 -p 61616:61616 -e ACTIVEMQ_ADMIN_LOGIN=admin -e ACTIVEMQ_ADMIN_PASSWORD=123456 --restart=always webcenter/activemq:latest |
docker run —name=activemq -d -p 8161:8161 -p 61616:61616 -e ACTIVEMQ_ADMIN_LOGIN=admin -e ACTIVEMQ_ADMIN_PASSWORD=123456 —restart=always webcenter/activemq:latest
四 服务器环境搭建
生成安装路径
1 | mkdir -p /usr/local/server |
4.1 安装编译工具及库文件
1 | yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel |
4.2 安装 PCRE
PCRE 作用是让 Nginx 支持 Rewrite 功能
2 上传安装文件并解压
进入目录
1 | cd /usr/local/server/ |
上传安装文件到此目录
也可以执行以下命令进行在线下载
1 | wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz |
下载完成之后进行解压
1 | tar -xvzf pcre-8.35.tar.gz |
3 编译安装
进入安装包目录
1 | cd pcre-8.35 |
编译安装
1 | ./configure |
4 查看pcre版本
1 | pcre-config --version |
得到的结果如下
1 | [root@localhost pcre-8.35]# pcre-config --version |
表示安装成功
4.3 安装nginx
4.3.1 上传文件到指定目录
1 | cd /usr/local/server/ |
上传安装文件到此目录
也可以执行以下命令进行在线下载
1 | wget http://nginx.org/download/nginx-1.18.0.tar.gz |
4.3.2 解压
解压命令如下
1 | tar -xvzf nginx-1.18.0.tar.gz |
进入安装包目录
1 | cd nginx-1.18.0/ |
4.3.3 编译安装
安装命令如下
1 | ./configure --prefix=/usr/local/server/nginx-1.18.0 --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/server/pcre-8.35 |
./configure —prefix=/usr/local/server/nginx-1.18.0 —with-http_stub_status_module —with-http_ssl_module —with-pcre=/usr/local/server/pcre-8.35
接着执行以下命令
1 | make |
4.3.4 确认安装状态
执行上述命令后,会在安装目录下生成一个 sbin
名字的文件夹,此时,基本上可以认为安装成功了
执行以下命令
1 | mkdir -p /usr/local/server/nginx-1.18.0/logs |
接着执行
1 | /usr/local/server/nginx-1.18.0/sbin |
此时,如果出现
1 | [root@localhost sbin]# ./nginx -v |
表明确定安装成功了
此时,在当前目录下执行
1 | ./nginx |
即可启动nginx了
接着执行
1 | [root@localhost sbin]# ps -ef|grep nginx |
如果出现上述的输出,表明nginx进程启动了
在访问 http://目标服务器地址/ ,如果访问成功,则表明确实安装成功
4.4 安装静态资源服务器
必须在完成nginx 安装的基础上进行
4.4.1 生成静态资源路径
命令如下
1 | mkdir -p /home/demo |
随意放置一个文件到该目录里
4.4.2 配置nginx配置文件
在修改之前,备份nginx配置文件
1 | cd /usr/local/server/nginx-1.18.0/conf |
修改配置文件如下
1 | # 解决访问静态资源403的问题 |
上述配置中增加的配置为
在最上面加上
1 | # 解决访问静态资源403的问题 |
在server节点下增加
1 | # 照片 |
其中的/home/demo/
就是上一步中配置静态资源未知
接下来重启nginx
1 | cd /usr/local/server/nginx-1.18.0/sbin |
重启成功后,访问
http://192.168.195.128/image/aa.jpg
如果能访问当前资源,则表明配置成功
4.5 安装tomcat服务器
4.5.1 上传文件到服务器
进入文件安装目录
1 | cd /usr/local/server |
上传安装文件到当前目录
或者执行一下命令进行下载
1 | wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.34/bin/apache-tomcat-9.0.34.tar.gz |
4.5.2 解压并启动
解压命令如下
1 | tar -xvzf apache-tomcat-9.0.34.tar.gz |
接着执行
1 | cd /usr/local/server/apache-tomcat-9.0.34/bin |
启动成功后,访问
如果当前目录能够访问,表明安装成功
4.5.3 安装文件上传应用
进行目录
1 | cd /usr/local/server/apache-tomcat-9.0.34/webapps |
上传文件服务器应用到当前目录
如果不能上传,可执行命令
1 | scp root@192.168.0.104:/home/software/file.war /usr/local/server/apache-tomcat-9.0.34/webapps |
接下来重启tomcat
1 | cd /usr/local/server/apache-tomcat-9.0.34/bin |
4.5.4 修改nginx配置文件
在server节点下增加以下配置
1 | # 文件上传 |
此时完整的配置文件为
1 | # 解决访问静态资源403的问题 |
配置成功后,重启nginx
1 | cd /usr/local/server/nginx-1.18.0/sbin |
4.5.5 上传测试
使用postman进行上传测试
测试地址为
http://192.168.195.128/file/upload
如果得到的响应为
1 | { |
则表示文件上传成功
此时,访问 http://192.168.195.128/image/e219c272b5534139b23f74344b5191f6.jpg ,能够访问成功,则表明上传文件功能正常
五 应用程序安装
5.1 初始化数据库
连接好mysql数据库,新建一个名为 demo
的数据库,并导入初始化脚本。
5.2 安装应用程序
进入tomcat的部署目录
1 | cd /usr/local/server/apache-tomcat-9.0.34/webapps |
接下来删除无关的项目
上传后端程序到当前目录,并重命名为 ROOT.war
如果无法上传,可以执行命令
1 | scp root@192.168.0.104:/home/software/demo.war /usr/local/server/apache-tomcat-9.0.34/webapps |
接下来重启tomcat
待安装包解压后,修改配置连接信息
修改后端连接配置
进行目录 /usr/local/server/apache-tomcat-9.0.34/webapps/ROOT/WEB-INF/classes
修改配置连接
修改后的配置为
1 | # datasource |
修改前端连接配置
进入目录 /usr/local/server/apache-tomcat-9.0.34/webapps/ROOT/WEB-INF/classes/static/js
,修改app.xxxx.js中的配置信息
需要修改的节点为
- pro : 请求的主要地址
- url : 文件上传地址
- imgUrl :默认的图片地址
需要将其中的ip替换为对应的域名
修改完成后,重新tomcat服务器
5.3 修改nginx配置
1 首先在 http
节点下增加以下配置
1 | upstream servers { |
2 接下来在server
节点下,增加以下配置
1 | #其他的 |
在上述代码中
1 | proxy_set_header Host $host; |
的目的是为转发请求头
此时,完整的配置为
1 | # 解决访问静态资源403的问题 |
配置完成后,重启nginx
1 | cd /usr/local/server/nginx-1.18.0/sbin |
重启完成后,如果能访问 http://192.168.195.128/#/ 则初步表明配置成功
接下来进行其他的验证即可。
六 开机自启动
6.1 nginx开机自启动
1、先创建开机自启脚本(nginx.service)
1 | cd /etc/systemd/system |
2 、修改nginx.service文件内容
1 | # 仅修改 /usr/local/nginx/sbin/nginx 这个路径即可(修改为你的nginx路径) |
3、设置文件权限
1 | chmod 755 nginx.service |
4、设置开机自启动
1 | systemctl daemon-reload |
5、检查命令是否正常
1 | systemctl start nginx # nginx启动 |
6、其他命令
1 | # 启动nginx服务 |