software_deploy/README.md
2022-11-20 21:15:56 +08:00

1562 lines
38 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 编程环境和软件设施安装手册
## 环境声明(重要!!!)
本文档所有实验、环境、工具、软件均基于 CentOS 7.4 64bit Linux操作系统进行
## 1.GIT工具安装
### 方式一:通过包管理器安装
在 Linux 上安装 Git 向来**仅需一行命令**即可搞定,因为各式各样的**包管理器**帮了我们⼤忙,所以对于
CentOS 系统来讲,直接执行如下命令即可安装:
```bash
yum -y install git
```
当然通过这种⽅式安装的 Git 可能不是较新版的 Git ,以我们的实验环境 CentOS 7.4 来说,这种⽅
式安装的 Git 版本为 1.8.3.1 ,不过一般来说是够用的。
### 方式二:通过源码编译安装
如果想安装较新版本的 Git ,则需要自行下载 Git 源码来编译安装。
**1、准备Git安装包**
我这里选择安装的是 2.26.2 版,将下载好的安装包 v2.26.2.tar.gz 直接放在了 root 目录下
然后将其本地解压,得到 git-2.26.2 目录:
```bash
[root@localhost ~]# tar -zxvf v2.26.2.tar.gz
```
**2、提前安装可能所需的依赖**
```bash
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker
```
**3、编译安装Git**
进入到对应目录,执行配置、编译、安装命令即可,如下所示:
```bash
[root@localhost ~]# cd git-2.26.2/
[root@localhost git-2.26.2]# make configure
[root@localhost git-2.26.2]# ./configure --prefix=/usr/local/git
[root@localhost git-2.26.2]# make profix=/usr/local/git
[root@localhost git-2.26.2]# make install
```
**4、将Git加入环境变量**
将 Git 的可执行程序加入环境变量,便于后续使用
编辑配置文件:
```bash
vim /etc/profile
```
尾部加入 Git 的 bin 路径配置即可
```bash
export GIT_HOME=/usr/local/git
export PATH=$PATH:$GIT_HOME/bin
```
最后执行 `source /etc/profile` 使环境变量生效即可。
**5、查看安装结果**
执行 `git --version` 查看安装后的版本即可
![](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangbushuwendang202209071058899.png)
## 2.JDKJAVA环境安装
> 注意这里安装的是Oracle JDK
### 准备JDK安装包
我这里下载的是 jdk-8u161-linux-x64.tar.gz 安装包,并将其直接放在了 /usr/src 目录下
```bash
wget https://mirror.liuyan.wang/download/jdk/jdk-8u161-linux-x64.tar.gz -P /usr/src
```
### 卸载已有的OPENJDK如果有
如果系统自带有 OpenJDK ,可以按照如下步骤提前卸载之。
首先查找已经安装的 OpenJDK 包:
```bash
rpm -qa | grep java
```
![](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangbushuwendang202209071103565.png)
接下来可以将 java 开头的安装包均卸载即可:
```bash
yum -y remove java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64
yum -y remove java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
... 省略 ...
```
### 创建目录并解压
1、在 `/usr/local/` 下创建 java 文件夹并进入
```bash
mkdir -p /usr/local/java
cd /usr/local/java
```
2、将上面准备好的 JDK 安装包解压到 /usr/local/java 中即可
```bash
tar -zxvf /usr/src/jdk-8u161-linux-x64.tar.gz -C ./
```
解压完之后, /usr/local/java 目录中会出现一个 jdk1.8.0_161 的目录
配置JDK环境变量
编辑 /etc/profile 文件,在文件尾部加入如下 JDK 环境配置即可
```bash
vim /etc/profile
```
```bash
# java
JAVA_HOME=/usr/local/java/jdk1.8.0_161
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
```
然后执行如下命令让环境变量生效
```bash
source /etc/profile
```
### 验证JDK安装结果
输入如下命令即可检查安装结果:
```bash
java -version
javac
```
![](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangbushuwendang202209071141866.png)
## 3.NODE环境安装
### 准备NODE安装包
1、在 `/usr/local/` 下创建 `node` 文件夹并进入,下载node包
```bash
mkdir -p /usr/local/node
cd /usr/local/node
wget https://mirror.liuyan.wang/download/nodejs/node-v12.16.3-linux-x64.tar.xz
```
2、将 Node 的安装包解压到 /usr/local/node 中即可
```bash
tar -xJvf node-v12.16.3-linux-x64.tar.xz -C ./
```
解压完之后, /usr/local/node 目录中会出现一个 node-v12.16.3-linux-x64 的目录
### 配置NODE系统环境变量
编辑 `~/.bash_profile` 文件,在文件末尾追加如下信息:
```bash
vim ~/.bash_profile
```
```bash
# Nodejs
export PATH=/usr/local/node/node-v12.16.3-linux-x64/bin:$PATH
```
刷新环境变量,使之生效即可:
```bash
source ~/.bash_profile
```
### 检查安装结果
```bash
node -v
npm version
npx -v
```
均有版本信息输出即可:
![image-20221118143326259](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118143326259.png)
## 4.PYTHON环境安装
> CentOS 7.4 默认自带了一个 Python2.7 环境
>
> 然⽽现在主流都是 Python3 ,所以接下来再装一个 Python3 ,打造一个共存的环境。
### 下载PYTHON3安装包并解压
```bash
wget https://mirror.liuyan.wang/download/python/Python-3.8.3.tgz
tar zxvf Python-3.8.3.tgz
```
则可以在当前目录得到文件夹: Python-3.8.3
### 安装相关预备环境
直接执行如下命令即可:
```bash
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
```
### 编译并安装
这里指定了安装目录为 /usr/local/python3 ,有需要可以自定义
```bash
cd Python-3.8.3/
./configure prefix=/usr/local/python3
make && make install
```
等安装过程完毕, /usr/local/python3 目录就会生成了
### 添加软链接
我们还需要将刚刚安装生成的目录 `/usr/local/python3` 里的 python3 可执行文件做一份软链接,链接到 /usr/bin 下⽅便后续使用python3
```bash
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
```
### 验证安装
命令行输入 python3 ,即可查看 Python3 版本的安装结果
![image-20221118144140082](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118144140082.png)
⽽输入 python ,依然还是 python2.7.5 环境
![image-20221118144219840](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118144219840.png)
## 5.MAVEN项目构建和管理工具安装
### 下载并解压maven安装包
```bash
mkdir -p /usr/local/maven
cd /usr/local/maven
wget https://mirror.liuyan.wang/download/maven/apache-maven-3.6.3-bin.tar.gz
tar zxvf apache-maven-3.6.3-bin.tar.gz
```
即可在当前目录得到 /usr/local/maven/apache-maven-3.6.3 目录
### 配置MAVEN加速镜像源
这里配置的是阿里云的maven镜像源。
编辑修改` /usr/local/maven/apache-maven-3.6.3/conf/settings.xml`文件,在 `<mirrors></mirrors>` 标签对里添加如下内容即可:
```xml
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
```
![image-20221118144949788](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118144949788.png)
### 配置环境变量
因为下载的是`⼆进制`版安装包,所以解压完,配置好环境变量即可使用了。
编辑修改 `/etc/profile` 文件,在文件尾部添加如下内容,配置 maven 的安装路径
```bash
vim /etc/profile
```
```bash
# maven
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
```
接下来执行 `source /etc/profile` 来刷新环境变量,让 maven 环境的路径配置生效。
```bash
source /etc/profile
```
### 检验安装结果
执行 `mvn v` ,能打印出 maven 版本信息说明安装、配置成功:
![image-20221118145951040](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118145951040.png)
## 6.MYSQL数据库部署和安装(二进制)
### 首先下载安装包
这里下载的是 `mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz` 安装包,并将其直接放在了 /usr/src目录下
```bash
wget https://mirror.liuyan.wang/download/mysql/binary/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -P /usr/src
```
### 安装依赖
```bash
yum -y install libaio
```
### 卸载系统自带的MARIADB如果有
如果系统之前自带 Mariadb ,可以先卸载之。
首先查询已安装的 Mariadb 安装包:
```
rpm -qa|grep mariadb
```
![image-20221118160550725](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118160550725.png)
均将其卸载:
```bash
yum -y remove mariadb-server-5.5.56-2.el7.x86_64
yum -y remove mariadb-5.5.56-2.el7.x86_64
yum -y remove mariadb-devel-5.5.56-2.el7.x86_64
yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
```
### 解压MYSQL安装包
```bashj
tar -zxvf /usr/src/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
cd /usr/local/
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql
```
### 创建MYSQL用户和用户组
```bash
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
```
同时新建 /usr/local/mysql/data 目录,后续作为数据目录使用
### 准备MYSQL的配置文件
在 /usr/local/mysql 目录下新建 my.cnf 文件
```bash
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端⼝
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最⼤连接数
max_connections=200
# 允许最大包大小
max_allowed_packet=1024M
# 服务端使用的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
#lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
#lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的
lower_case_table_names=1
############################## 日 志 配 置 ##############################
#二进制日志目录
server-id=99
log-bin = /usr/local/mysql/log/mysql-bin
#自动删除过期日志的天数
expire_logs_days = 10
#限制单个文件大小
max_binlog_size = 100M
#查询日志
general_log = 1
#查询日志文件位置
general_log_file = /usr/local/mysql/log/query.log
#慢查询日志
slow_query_log = 1
#慢日志文件位置
slow_query_log_file = /usr/local/mysql/log/slow-query.log
#超过2秒记录
long-query_time = 2
#错误日志
log-error = /usr/local/mysql/log/error.log
```
### 修改MYSQL目录的归属用户
```bash
chown -R mysql:mysql /usr/local/mysql
```
同时使用如下命令创建 /var/lib/mysql 目录,并修改权限:
```
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql
```
### 正式开始安装MYSQL
执行如下命令正式开始初始化安装:
```bash
cd /usr/local/mysql
./bin/mysqld --defaults-file=/usr/local/mysql//my.cnf --initialize --user=mysql
```
注意:这里也可以使用
```bash
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
```
来进行初始化,但这样会在`/etc/`下自动生成一个my.cnf,而不使用`/usr/local/mysql`下的配置文件
### 复制启动脚本到资源目录
执行如下命令复制:
```bash
cp ./support-files/mysql.server /etc/init.d/mysqld
```
并修改 /etc/init.d/mysqld ,修改其 basedir 和 datadir 为实际对应目录:
```bash
vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
```
### 设置MYSQL系统服务并开启自启
首先增加 mysqld 服务控制脚本执行权限:
```bash
chmod +x /etc/init.d/mysqld
```
同时将 mysqld 服务加入到系统服务:
```bash
chkconfig --add mysqld
```
最后检查 mysqld 服务是否已经生效即可:
```bash
chkconfig --list mysqld
```
![image-20221118164236118](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118164236118.png)
这样就表明 mysqld 服务已经生效了在2、3、4、5运行级别随系统启动⽽自动启动以后可以直接使用 service 命令控制 mysql 的启停。
### 启动MYSQLD
直接执行:
```bash
service mysqld start
```
![image-20221118164326875](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118164326875.png)
### MYSQL 的 BIN 目录加入 PATH 环境变量
这样⽅便以后在任意目录上都可以使用 mysql 提供的命令。
编辑 `~/.bash_profile` 文件,在文件末尾处追加如下信息:
```bash
export PATH=$PATH:/usr/local/mysql/bin
```
最后执行如下命令使环境变量生效
```bash
source ~/.bash_profile
```
### 首次登陆MYSQL
以 root 账户登录 mysql ,使用上文安装完成提示的密码进行登入,如果并未显示,使用下面命令来查询
```bash
grep "pass" /usr/local/mysql/log/error.log
```
```bash
mysql -u root -p
```
### 修改ROOT账户密码
在mysql的命令行执行如下命令即可密码可以换成你想用的密码即可
```sql
mysql> set password=password("mypassword123");
mysql> flush privileges;
```
### 设置远程主机登录
```sql
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;
```
或者
```bash
mysql> grant all privileges on *.* to 'root'@'%' identified by 'mypassword123';
mysql> flush privileges;
```
### 最后利用NAVICAT等工具进行测试即可
![image-20221118165311527](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118165311527.png)
## 7.REDIS缓存安装部署
### 首先下载并解压REDIS安装包
1、在 /usr/local/ 下创建 redis 文件夹并进入
```bash
mkdir -p /usr/local/redis
cd /usr/local/redis
```
2、下载并解压REDIS安装包
```bash
wget https://mirror.liuyan.wang/download/redis/redis-5.0.8.tar.gz
tar zxvf redis-5.0.8.tar.gz -C ./
```
解压完之后, /usr/local/redis 目录中会出现一个 redis-5.0.8 的目录
### 编译并安装
```bash
cd redis-5.0.8/
make && make instal
```
> 如果报错 cc: command not found执行 yum -y install gcc gcc-c++ libstdc++-devel 然后make distclean再make clean然后重新编译
### 将 REDIS 安装为系统服务并后台启动
进入 utils 目录,并执行如下脚本即可:
```bash
[root@localhost redis-5.0.8]# cd utils/
[root@localhost utils]# ./install_server.sh
```
此处全部选择的默认配置即可,有需要可以按需定制
![image-20221118165918380](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118165918380.png)
### 查看REDIS服务启动情况
直接执行如下命令来查看Redis的启动结果
```bash
systemctl status redis_6379.service
```
![image-20221118171847313](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118171847313.png)
启动自带的 redis-cli 客户端,测试通过
![image-20221118171921293](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118171921293.png)
但是此时只能在本地访问,⽆法远程连接,因此还需要做部分设置
### 设置允许远程连接
编辑 redis 配置文件
```bash
vim /etc/redis/6379.conf
```
bind 127.0.0.1 修改为 0.0.0.0
![image-20221118172039920](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118172039920.png)
然后重启 Redis 服务即可:
```bash
systemctl restart redis_6379.service
```
### 设置访问密码
编辑 redis 配置文件
```bash
vim /etc/redis/6379.conf
```
找到如下内容:
```bash
...
#requirepass foobared
...
```
去掉注释,将 foobared 修改为自⼰想要的密码,保存
```bash
requirepass mypassword123
```
保存,重启 Redis 服务
```bash
systemctl restart redis_6379.service
```
这样后续的访问需要先输入密码认证通过:
![image-20221118172842926](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118172842926.png)
## 8.消息队列RABBITMQ安装部署
### 首先安装ERLANG环境
因为 RabbitMQ 需要 erlang 环境的⽀持,所以必须先安装 erlang
我们这里要安装的是 `erlang-22.3.3-1.el7.x86_64.rpm` 所以首先执行如下命令来安装其对应的yum repo
```bash
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | bash
```
![image-20221118173610308](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118173610308.png)
接下来执行如下命令正式安装 erlang 环境:
```bash
yum -y install erlang-22.3.3-1.el7.x86_64
```
![image-20221118173926073](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118173926073.png)
接着上面提示再次执行如下命令:
```bash
yum load-transaction /tmp/yum_save_tx.2020-05-14.22-21.n0cwzm.yumtx
```
![image-20221118174057972](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118174057972.png)
接下来可以直接执行如下命令,测试 erlang 是否安装成功:
```bash
erl
```
![image-20221118174150112](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118174150112.png)
### 安装RABBITMQ
接下来正式开始安装 rabbitmq ,首先依然是安装其对应的 yum repo
```bash
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
```
![image-20221118174256730](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118174256730.png)
然后执行如下命令正式安装 rabbitmq
```bash
yum -y install rabbitmq-server-3.8.3-1.el7.noarch
```
![image-20221118174406879](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118174406879.png)
![image-20221118174506632](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118174506632.png)
### 设置RABBITMQ开机启动
```bash
chkconfig rabbitmq-server on
```
### 启动RABBITMQ服务
```bash
systemctl start rabbitmq-server.service
```
### 开启WEB可视化管理插件
```bash
rabbitmq-plugins enable rabbitmq_management
```
### 访问可视化管理界面:
浏览器输入: 你的服务器IP:15672
![image-20221118174657871](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118174657871.png)
能看到⽹⻚登录入⼝即可。
我们可以在后台先添加一个用户/密码对:
```bash
rabbitmqctl add_user codesheep 123456
rabbitmqctl set_user_tags codesheep administrator
```
然后登录⽹⻚即可:
![image-20221118174819812](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118174819812.png)
## 9.应用服务器TOMCAT安装部署
### 下载并解压安装包
```bash
mkdir -p /usr/local/tomcat
cd /usr/local/tomcat
wget https://mirror.liuyan.wang/download/tomcat/apache-tomcat-8.5.55.tar.gz
```
```bash
mkdir -p /usr/local/tomcat
cd /usr/local/tomcat
tar -zxvf apache-tomcat-8.5.55.tar.gz -C ./
```
解压完之后, /usr/local/tomcat 目录中会出现一个 apache-tomcat-8.5.55 的目录
### 启动TOMCAT
直接进 apache-tomcat-8.5.55 目录,执行其中 bin 目录下的启动脚本即可
```bash
[root@localhost apache-tomcat-8.5.55]# cd /usr/local/tomcat/bin/
[root@localhost bin]# ./startup.sh
```
![image-20221118175326255](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118175326255.png)
这时候浏览器访问: 主机IP:8080 ,得到如下画面说明成功启动了
![image-20221118175357191](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118175357191.png)
### 配置快捷操作和开机启动
进入 /etc/rc.d/init.d 目录,创建一个名为 tomcat 的文件,并赋予执行权限
```bash
[root@localhost ~]# cd /etc/rc.d/init.d/
[root@localhost init.d]# touch tomcat
[root@localhost init.d]# chmod +x tomcat
```
接下来编辑 tomcat 文件,并在其中加入如下内容:
```bash
#!/bin/bash
#chkconfig:- 20 90
#description:tomcat
#processname:tomcat
TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.55
case $1 in
start) su root $TOMCAT_HOME/bin/startup.sh;;
stop) su root $TOMCAT_HOME/bin/shutdown.sh;;
*) echo "require start|stop" ;;
esac
```
这样后续对于Tomcat的开启和关闭只需要执行如下命令即可
```bash
service tomcat start
service tomcat stop
```
最后加入开机启动即可:
```bash
chkconfig --add tomcat
chkconfig tomcat on
```
## 10.WEB服务器NGINX安装部署
### 首先安装包并解压
这里下载的是 nginx-1.18.0.tar.gz 安装包,并将其直接放在了 /usr/src 目录下
```
wget https://mirror.liuyan.wang/download/nginx/nginx-1.18.0.tar.gz -P /usr/src
```
1、进入 /usr/src
```bash
cd /usr/src
```
2、将 Nginx 安装包解压
```bash
tar xvf nginx-1.18.0.tar.gz -C ./
```
解压完之后, /usr/src 目录中会出现一个 `nginx-1.18.0` 的目录
### 预先安装额外的依赖
```bash
yum -y install gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
```
### 添加nginx用户
```bash
useradd nginx -s /sbin/nologin -M
```
### 编译安装NGINX
```bash
cd /usr/src/nginx-1.18.0
./configure --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/log/nginx.pid --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-http_sub_module --with-stream
```
```bash
make
make install
```
安装完成后Nginx的可执行文件位置位于
```bash
/usr/local/nginx/sbin/nginx
```
### 启动NGINX
直接执行如下命令即可:
```bash
/usr/local/nginx/sbin/nginx
```
如果想停⽌Nginx服务可执行
```bash
/usr/local/nginx/sbin/nginx -s stop
```
如果修改了配置文件后想重新加载Nginx可执行
```bash
/usr/local/nginx/sbin/nginx -s reload
```
注意其配置文件位于:
```bash
/usr/local/nginx/conf/nginx.conf
```
### 浏览器验证启动情况
![image-20221118181443748](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118181443748.png)
## 11.DOCKER环境安装
### 卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
```bash
yum -y remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
```
### 设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
```bash
yum install -y yum-utils device-mapper-persistent-data lvm2
```
**使用以下命令来设置稳定的仓库。**
阿里云
```bash
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
```
清华大学源
```bash
yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
```
### 安装 Docker
```bash
yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
```
**如果要安装特定版本的 Docker Engine-Community请在存储库中列出可用版本然后选择并安装**
```bash
$yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
$yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
```
### 启动 Docker并设置开机自启
```bash
systemctl start docker
systemctl enable docker
```
## 12.ELASTICSEARCH集群部署
### 环境准备
- **节点准备**
本文准备搭建 **双节点** Elasticsearch集群用双节点仅仅是做演示因此这里准备了两台 Linux CentOS 7.4 64bit 机器:
> - 节点1 192.168.31.8
>
> - 节点2 192.168.31.9
- **Elasticsearch** **安装包准备**
这里下载的是: `6.4.2`
```bash
wget https://mirror.liuyan.wang/download/elasticsearch/elasticsearch-6.4.2.tar.gz
```
- **安装目录准备**
这里拟将 Elasticsearch安装在 /opt/elasticsearch 目录下:
```bash
mkdir /opt/elasticsearch
```
将压缩包复制到该目录下并解压:
```bash
cp elasticsearch-6.4.2.tar.gz /opt/elasticsearch/
cd /opt/elasticsearch
tar xvf elasticsearch-6.4.2.tar.gz
```
### ELASTICSEARCH 集群配置
需要修改两个节点上的配置文件 `elasticsearch.yml`
- **节点1配置**
```yml
cluster.name: escluster # 集群名称
node.name: sheep1 # 节点名
network.host: 192.168.31.8 # 绑定的节点1地址
network.bind_host: 0.0.0.0 # 此项不设置你试试本机可能访问不了啊
discovery.zen.ping.unicast.hosts: ["192.168.31.8","192.168.31.9"] #hosts列表
discovery.zen.minimum_master_nodes: 1
## 如下配置是为了解决 Elasticsearch可视化工具 dejavu的跨域问题若不用可视化工具则可省略之
http.port: 9200
http.cors.allow-origin: "http://192.168.199.76:1358"
http.cors.enabled: true
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true
```
- **节点2配置**
```bash
cluster.name: escluster # 集群名称
node.name: sheep1 # 节点名
network.host: 192.168.31.9 # 绑定的节点2地址
network.bind_host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["192.168.31.8","192.168.31.9"] #
hosts列表
discovery.zen.minimum_master_nodes: 1
## 如下配置是为了解决 Elasticsearch可视化工具 dejavu的跨域问题若不用可视化工具则可省略之
http.port: 9200
http.cors.allow-origin: "http://192.168.199.76:1358"
http.cors.enabled: true
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true
```
### 集群启动前准备
- **创建用户及用户组**
由于 Elasticsearch不能以 root用户启动因此需要添加⾮ root用户
```bash
groupadd es
useradd es -g es
chown -R es:es ./elasticsearch-6.4.2
```
- **关闭防火墙**
```bash
systemctl stop firewalld
systemctl disable firewalld
```
### 启动 ELASTICSEARCH集群
- **切换用户**
```bash
su es
```
- **分别在 节点1和 节点2上启动ES服务**
```bash
cd bin
./elasticsearch // 若要后台启动,则加-d参数
```
- **浏览器访问http://ip:9200/ 查看启动效果**
![image-20221118221505934](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118221505934.png)
> 报错:**max file descriptors [4096] for elasticsearch process is too low**
解决办法:
```bash
vim /etc/security/limits.conf
```
使用root用户把以下配置加到文件末尾再登录es用户尝试启动
```bash
es soft nofile 65536
es hard nofile 65536
```
![image-20221118221839640](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118221839640.png)
> 报错:**max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]**
解决办法:
```bash
echo 262144 > /proc/sys/vm/max_map_count
```
- **命令行查看集群信息**
![image-20221118222250849](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118222250849.png)
## 13.ZOOKEEPER安装部署
### 准备安装包
这里使用的是 3.6.1 版,下载的是 apache-zookeeper-3.6.1-bin.tar.gz 压缩包,并将其放在了 /usr/src 目录下
```bash
wget https://mirror.liuyan.wang/download/zookeeper/apache-zookeeper-3.6.1-bin.tar.gz -P /usr/src
```
### 解压并安装
/usr/local/ 下创建 zookeeper 文件夹并进入
```bash
mkdir -p /usr/local/zookeeper
cd /usr/local/zookeeper
```
将 ZooKeeper 安装包解压到 /usr/local/zookeeper 中即可
```bash
[root@localhost zookeeper]# tar -zxvf /usr/src/apache-zookeeper-3.6.1-bin.tar.gz -C ./
```
解压完之后, /usr/local/zookeerper 目录中会出现一个 apache-zookeeper-3.6.1-bin 的目录
直接在该目录下创建个data目录
```bash
mkdir -p apache-zookeeper-3.6.1-bin/data
```
![image-20221118223548955](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118223548955.png)
等下该 data 目录地址要配到 ZooKeeper 的配置文件中:
### 创建配置文件并修改
进入到 zookeeper 的 conf 目录,复制 zoo_sample.cfg 得到 zoo.cfg
```bash
[root@localhost apache-zookeeper-3.6.1-bin]# cd conf/
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
```
修改配置文件 zoo.cfg ,将其中的 dataDir 修改为上面刚创建的 data 目录,其他选项可以按需配置
![image-20221118223723092](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118223723092.png)
### 启动ZOOKEEPER
```bash
[root@localhost apache-zookeeper-3.6.1-bin]# ./bin/zkServer.sh start
```
![image-20221118223816158](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118223816158.png)
启动后可以通过如下命令来检查启动后的状态:
[root@localhost apache-zookeeper-3.6.1-bin]# ./bin/zkServer.sh status
![image-20221118224553236](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118224553236.png)
从图中也可以看出zookeeper默认会绑定端⼝ 2181 。
### 配置环境变量
编辑配置文件:
```bash
vim /etc/profile
```
尾部加入 ZooKeeper 的 bin 路径配置即可
```bash
export ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.6.1-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin
```
最后执行 source /etc/profile 使环境变量生效即可。
### 设置开机自启
首先进入 /etc/rc.d/init.d 目录,创建一个名为 zookeeper 的文件,并赋予执行权限
```bash
[root@localhost ~]# cd /etc/rc.d/init.d/
[root@localhost init.d]# touch zookeeper
[root@localhost init.d]# chmod +x zookeeper
```
接下来编辑 zookeeper 文件,并在其中加入如下内容:
```bash
#!/bin/bash
#chkconfig:- 20 90
#description:zookeeper
#processname:zookeeper
ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.6.1-bin
export JAVA_HOME=/usr/local/java/jdk1.8.0_161 # 此处根据你的实际情况更换对应
case $1 in
start) su root $ZOOKEEPER_HOME/bin/zkServer.sh start;;
stop) su root $ZOOKEEPER_HOME/bin/zkServer.sh stop;;
status) su root $ZOOKEEPER_HOME/bin/zkServer.sh status;;
restart) su root $ZOOKEEPER_HOME/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
```
最后加入开机启动即可:
```bash
chkconfig --add zookeeper
chkconfig zookeeper on
```
## 14.消息队列KAFKA安装部署
### 首先准备ZOOKEEPER服务
因为 Kafka 的运行环境依赖于 ZooKeeper ,所以首先得安装并运行 ZooKeeper ,这个可以参考上面的内容。
### 准备KAFKA安装包
这里下载的是 2.5.0 版: kafka_2.12-2.5.0.tgz ,将下载后的安装包放在了 /usr/src 目录下
```bash
wget https://mirror.liuyan.wang/download/kafka/kafka_2.12-2.5.0.tgz -P /usr/src
```
### 解压并安装
在 /usr/local/ 下创建 kafka 文件夹并进入
```bash
mkdir -p /usr/local/kafka
cd /usr/local/kafka
```
将Kafka安装包解压到 /usr/local/kafka 中即可
```bash
[root@localhost kafka]# tar -zxvf /usr/src/kafka_2.12-2.5.0.tgz -C ./
```
解压完之后, /usr/local/kafka 目录中会出现一个 kafka_2.12-2.5.0 的目录
### 创建LOGS目录
这里直接在 /usr/local/kafka/kafka_2.12-2.5.0 目录中创建一个 logs 目录
```bash
mkdir -p /usr/local/kafka/kafka_2.12-2.5.0/log
```
等下该 logs 目录地址要配到Kafka的配置文件中。
### 修改配置文件
进入到 Kafka 的 config 目录,编辑配置文件 server.properties
```bash
[root@localhost kafka_2.12-2.5.0]# cd config/
[root@localhost config]# vim server.properties
```
修改配置文件,一是将其中的 log.dirs 修改为上面刚创建的 logs 目录,其他选项可以按需配置
![image-20221118225753731](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118225753731.png)
另外关注一下连接 ZooKeeper 的相关配置,根据实际情况进行配置:
![image-20221118225823429](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118225823429.png)
### 启动KAFKA
执行如下命令即可:
```bash
cd /usr/local/kafka/kafka_2.12-2.5.0
./bin/kafka-server-start.sh ./config/server.properties
```
![image-20221118225913005](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118225913005.png)
> 如果需要后台启动,则加上 -daemon 参数即可
### 实验验证
首先创建一个名为 topic 的 topic
![image-20221118234026684](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118234026684.png)
创建完成以后,可以使用命令来列出目前已有的 topic 列表
```
cd /usr/local/kafka/kafka_2.12-2.5.0
./bin/kafka-topics.sh --list --bootstrap-server localhost:9092
```
接下来创建一个**生产者**,用于在 topic 这个 topic 上生产消息:
```bash
cd /usr/local/kafka/kafka_2.12-2.5.0
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic topic
```
⽽后接着创建一个**消费者**,用于在 codesheep 这个 topic 上获取消息:
```bash
cd /usr/local/kafka/kafka_2.12-2.5.0
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic
```
此时生产者发出的消息,在消费者端可以获取到:
![image-20221118234538148](http://kodo.imbed.liuyan.wang/typora_img/note/dalaobushuwendangimage-20221118234538148.png)
## 15.数据库mongodb安装部署
### 下载mongodb包并解压
```bash
cd /usr/local
wget https://mirror.liuyan.wang/download/mongodb/mongodb-linux-x86_64-3.6.17.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-3.6.17.tgz
mv mongodb-linux-x86_64-rhel70-3.6.17.tgz mongodb
```
然后 在/usr/local/mongodb目录下新建data目录在data目录下新建db目录、logs目录并新建mongodb.conf文件后续会用到建完之后赋予权限。
```bash
chmod +x -R /usr/local/mongodb
```
### 初始化配置
首先,修改/usr/local/mongodb/data/目录下的mongodb.conf文件设置部分基础的参数修改后保存。
```json
systemLog:
destination: file
path: "/usr/local/mongodb/data/logs/mongodb.log"
logAppend: true
storage:
dbPath: "/usr/local/mongodb/data/db/"
journal:
enabled: true
processManagement:
fork: true
pidFilePath: "/usr/local/mongodb/data/mongodb.pid"
net:
bindIp: 0.0.0.0
port: 27017
maxIncomingConnections: 3000
setParameter:
enableLocalhostAuthBypass: false
#security:
# authorization: enabled
```
修改配置文件后启动mongodb数据库启动数据库后可以无密码本地访问、远程访问。
```bash
/usr/local/mongodb/bin/mongod --config=/usr/local/mongodb/data/mongodb.conf --fork
```
![](http://cdn.imbed.liuyan.wang/picgo_img20220801145652.png)
启动数据库后,进入数据库进行配置,新增远程访问账户
```json
use admin
db.createUser({user:"root",pwd:"mypassword",roles:[{role:"root",db:"admin"}]})
db.auth("root","mypassword")
```
同时,还要修改配置文件,设置远程访问。把配置文件中的注释项修改。
```json
#security:
authorization: enabled
```
修改后,关闭数据并重启数据库
#查询进程
ps -ef|grep mongodb
关闭mongodb数据库注意要用-2参数不要使用-9参数区别请查询相关信息
```bash
kill -2 进程号
/usr/local/mongodb/bin/mongod --config=/usr/local/mongodb/data/mongodb.conf --fork
```
> 然后使用Robo 3T工具进行远程测试
![](http://cdn.imbed.liuyan.wang/picgo_img20220801151813.png)
### 添加mongodb服务
使用下面命令进行启动并且查询进程号关闭比较麻烦可以把mongodb添加到系统服务这样就可以直接使用系统命令进行启动关闭。
```bash
/usr/local/mongodb/bin/mongod --config=/usr/local/mongodb/data/mongodb.conf fork
```
首先,在/usr/lib/systemd/system/目录下新增一个mongodb.service并新增如下内容。
```bash
vim /usr/lib/systemd/system/mongodb.service
[Unit]
Description=mongodb
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/data/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod +x /usr/lib/systemd/system/mongodb.service
```
配置后就可以使用systemctl start|stop|status mongodb.service进行启动关闭。
当然你也可以配置service start|stop|status mongodb进行数据库操作具体请自行查找(上面其他步骤中有使用)。
### 设置一个超级管理员账户
设置一个超级管理员账户,对于所有库具有读写权限
**①切换admin库进行用户创建**
```json
use admin
db.createUser({user:"root",pwd:"root",roles:["root"]})
```
**②关闭mongod服务重启添加权限参数并启动**
![](http://cdn.imbed.liuyan.wang/picgo_imgwps206.jpg)
在启动脚本中加入--auth参数
```json
/usr/local/mongodb/bin/mongod --auth --config=/usr/local/mongodb/data/mongodb.conf fork
```
## 16.memcache安装部署
## 首先获取安装包
```bash
wget https://mirror.liuyan.wang/download/memcached/memcached-1.5.22.tar.gz -P /usr/src
```
### 解压并进入安装包
```bash
cd /usr/src
tar xvf memcached-1.5.22.tar.gz
cd memcached-1.5.22
```
### 安装依赖
```bash
yum -y install libevent-devel
```
### 编译安装memcached
```bash
./configure --prefix=/usr/local/memcached
make && make install
```
### 查看软件启动参数,并启动
```bash
cd /usr/local/memcached/bin
./memcached -h
```
> -p是设置Memcache监听的端口最好是1024以上的端口
>
> -d是启动一个守护进程
>
> -m是分配给Memcache使用的内存数量单位是MB
>
> -u是运行Memcache的用户
>
> -l是监听的服务器IP地址可以有多个地址
>
> -c是最大运行的并发连接数默认是1024
>
> -P是设置保存Memcache的pid文件
### 启动memcached
```bash
#进入memcached文件目录
cd /usr/local/memcached/bin
#后台启动memcached 可以创建一个普通用户memcached 用来启动管理memcached软件
./memcached -uroot -d
#进程查看是否启动成功
ps aux |grep memcached
```
...未完待续