Centos 7.x & 8.x软件部署

之前记录整理的安装笔记

文章目录

  • [Centos 7.x & 8.x](#Centos 7.x & 8.x)
  • [1. 通用设置](#1. 通用设置)
    • [1.1 换源](#1.1 换源)
    • [1.2 终端快捷键设置](#1.2 终端快捷键设置)
    • [1.3 Win32DiskImager恢复](#1.3 Win32DiskImager恢复)
    • [1.4 命令](#1.4 命令)
    • [1.5 软碟通制作的U盘安装系统](#1.5 软碟通制作的U盘安装系统)
    • [1.6 卸载软件](#1.6 卸载软件)
    • [1.7 远程桌面](#1.7 远程桌面)
    • [1.8 端口占用](#1.8 端口占用)
    • [1.9 网卡配置(centos 7.8)](#1.9 网卡配置(centos 7.8))
    • [1.10 更改文件归属](#1.10 更改文件归属)
  • [2. 防火墙](#2. 防火墙)
    • [2.1 systemctl命令](#2.1 systemctl命令)
    • [2.2 firewall命令](#2.2 firewall命令)
  • [3. 端口操作命令](#3. 端口操作命令)
  • [4. gcc & make](#4. gcc & make)
  • [5. 安装openssh(命令行登录)](#5. 安装openssh(命令行登录))
  • [6. 开机自启](#6. 开机自启)
    • [6.1 方式一(rc.local)](#6.1 方式一(rc.local))
      • [6.1.1 启用rc.local服务](#6.1.1 启用rc.local服务)
      • [6.1.2 添加自定义脚本](#6.1.2 添加自定义脚本)
    • [6.2 方式二(chkconfig)](#6.2 方式二(chkconfig))
    • [6.3 看门狗](#6.3 看门狗)
  • [7. Mysql 5.7](#7. Mysql 5.7)
    • [7.1 下载&解压](#7.1 下载&解压)
    • [7.2 安装依赖](#7.2 安装依赖)
    • [7.3 创建数据和日志文件夹](#7.3 创建数据和日志文件夹)
    • [7.4 创建用户和组并赋权限](#7.4 创建用户和组并赋权限)
    • [7.5 添加配置](#7.5 添加配置)
    • [7.6 初始化](#7.6 初始化)
    • [7.7 命令支持](#7.7 命令支持)
    • [7.8 测试:启动/停止/重启](#7.8 测试:启动/停止/重启)
    • [7.9 密码修改&远程访问](#7.9 密码修改&远程访问)
    • [7.10 开机自启](#7.10 开机自启)
    • [7.11 依赖&字符集](#7.11 依赖&字符集)
    • [7.12 错误解决](#7.12 错误解决)
    • [7.13 主从同步](#7.13 主从同步)
      • [7.13.1 主服务器配置(master)](#7.13.1 主服务器配置(master))
      • [7.13.2 从服务器配置(slave)](#7.13.2 从服务器配置(slave))
      • [7.13.3 解除主库只读锁定](#7.13.3 解除主库只读锁定)
      • [7.13.4 错误解决](#7.13.4 错误解决)
    • [7.14 导入导出](#7.14 导入导出)
  • [8. JDK8 & JRE8](#8. JDK8 & JRE8)
    • [8.1 卸载OpenJDK](#8.1 卸载OpenJDK)
    • [8.2 安装Oracle JRE](#8.2 安装Oracle JRE)
    • [8.3 安装Oracle JDK](#8.3 安装Oracle JDK)
  • [9. Redis](#9. Redis)
    • [9.1 下载&解压&移动](#9.1 下载&解压&移动)
    • [9.2 编译安装](#9.2 编译安装)
    • [9.3 测试](#9.3 测试)
    • [9.4 修改配置文件](#9.4 修改配置文件)
    • [9.5 开机自启](#9.5 开机自启)
    • [9.6 错误解决](#9.6 错误解决)
  • [10. ActiveMq](#10. ActiveMq)
    • [10.1 下载&解压&移动](#10.1 下载&解压&移动)
    • [10.2 启动测试](#10.2 启动测试)
    • [10.3 修改账号和密码](#10.3 修改账号和密码)
    • [10.4 开机自启](#10.4 开机自启)
  • [11. Nginx](#11. Nginx)
    • [11.1 安装 PCRE](#11.1 安装 PCRE)
    • [11.2 安装 zlib](#11.2 安装 zlib)
    • [11.3 openSSL模块](#11.3 openSSL模块)
    • [11.4 RTMP模块](#11.4 RTMP模块)
    • [11. 5 安装 nginx](#11. 5 安装 nginx)
  • 12.向日葵
  • 13.Teamviewer
  • 14.FFmpeg
  • [15.Elasticsearch 7.6.2](#15.Elasticsearch 7.6.2)
  • 16.RocketMq
    • [16.1 安装 RocketMq](#16.1 安装 RocketMq)
    • [16.2 开机自启(有问题)](#16.2 开机自启(有问题))
    • [16.3 可视化控制台](#16.3 可视化控制台)
    • [16.4 错误解决](#16.4 错误解决)
  • 17.Maven
    • [17.1 直接安装](#17.1 直接安装)
    • [17.2 安装包安装](#17.2 安装包安装)
  • 18.HTML文件部署
    • [18.1 Nginx](#18.1 Nginx)
    • [18.2 Tomcat](#18.2 Tomcat)
  • 19.PHP
  • 20.GO
  • 21.禅道
  • 22.Nacos
  • 23.Sentinel
  • 24.RabbitMq
    • [24.1 Erlang安装](#24.1 Erlang安装)
    • [24.2 rabbitmq 安装](#24.2 rabbitmq 安装)
    • [24.3 rabbitmq 配置](#24.3 rabbitmq 配置)
    • [24.4 插件管理](#24.4 插件管理)
    • [24.5 docker安装rabbitmq](#24.5 docker安装rabbitmq)
  • 25.Seata
  • 26.Minio

Centos 7.x & 8.x

1. 通用设置

1.1 换源

阿里云源,镜像文件位置:/etc/yum.repos.d/CentOS-Base.repo

1.1.1 备份

plain 复制代码
$ cd /etc/yum.repos.d/
$ cp CentOS-Base.repo CentOS-Base.repo.back
$ rm CentOS-Base.repo

1.1.2 各版本源地址(CentOS-Base.repo后面有空格)

Centos 5

plain 复制代码
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

Centos 6

plain 复制代码
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS 7

plain 复制代码
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

CentOS 8

plain 复制代码
$ wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

1.1.3 并替换部分字段(非阿里云机器需要做)

plain 复制代码
$ sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

1.1.4 本地DVD源(可选)

plain 复制代码
# 更改CentOS-Media.repo使其为不生效:
$ vim /etc/yum.repos.d/CentOS-Media.repo
修改:enabled=0

注:将CentOS-Media.repo 文件的enabled=0 改成 enabled=1 ,需要删除或用#屏蔽file:///media/cdrom/和file:///media/cdrecorder/这两行,
如果不删除或屏蔽,生成源缓存时会因为找不到对应的文件而报错(未测试)

1.1.5 更新元数据缓存

plain 复制代码
$ yum clean all && yum makecache

1.1.6 更新

plain 复制代码
$ yum update -y

1.2 终端快捷键设置

设置>>设备>>键盘(Keyboard)>>右侧列表拉到底,然后点+

名称:随便填写

命令:/usr/bin/gnome-terminal

快捷键:点击一下Set Shortcut,然后在键盘上按下想要的快捷键

1.3 Win32DiskImager恢复

windows环境:win+R,执行以下命令

plain 复制代码
diskpart

格式化U盘

plain 复制代码
> list disk
> select disk 1
> clean
> create partition primary
> active
> format fs=fat32 quick

1.4 命令

查看隐藏文件夹

plain 复制代码
$ ll -a
$ ls -a

打包压缩

plain 复制代码
$ tar -czvf nginx-rtmp-module.tar.gz nginx-rtmp-module/

# -czvf : 
	c 创建  
	z gzip压缩格式
	v 可视 
	f 文件名

1.5 软碟通制作的U盘安装系统

因为windows卷标长度的限制,软碟通制作的U盘启动盘安装时需要手动指定引导磁盘位置。

开机从U盘启动到centos安装选项时,选择第一个选项(Install Centos 7),安装Tab键:

vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x2086_64 quiet

修改CentOS\x207\x2086_64CentOS\x207\x208,回车开始安装即可

注:如果不清楚挂在卷标名称,修改CentOS\x207\x2086_64linux dd,回车,查看挂在磁盘。

1.6 卸载软件

参考 openJDK卸载

plain 复制代码
sudo rpm -e  -- 包名 # 普通删除模式
sudo rpm -e --nodeps 包名 #强力删除模式,如果用上面命令删除时,提示有依赖的其他文件,则用该命令可以对其进行强力删除

1.7 远程桌面

前提:

安装GNOME桌面,已有忽略

plain 复制代码
yum -y groups install "GNOME Desktop"
startx

安装xvnc

方式一

plain 复制代码
$ yum install  epel* -y
$ yum --enablerepo=epel -y install xrdp

方式二

1)安装xrdp

资源网站:http://mirrors.ustc.edu.cn/fedora/epel/7,到对应的目录,查找以epel-release-开头的RPM包

plain 复制代码
$ wget http://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
$ rpm -Uvh epel-release-7-11.noarch.rpm
$ yum install xrdp

2)安装 tigervnc

plain 复制代码
$ yum install tigervnc tigervnc-server

3)配置SELinux , 否则可能无法启动xrdp服务,或者启动出错

plain 复制代码
$ chcon -t bin_t /usr/sbin/xrdp
$ chcon -t bin_t /usr/sbin/xrdp-sesman

启动xrdp,设置开机自启

plain 复制代码
$ systemctl start xrdp
$ systemctl enable xrdp

防火墙

plain 复制代码
//开放3389端口
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload

1.8 端口占用

plain 复制代码
$ netstat -lntp

1.9 网卡配置(centos 7.8)

配置文件路径

plain 复制代码
/etc/sysconfig/network-scripts/ifcfg-enpXs0
#enpXs0中的X为网卡编号

网卡配置(注意网卡名称,NAME、DEVICE)

plain 复制代码
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp1s0
UUID=ca078e65-1a78-4a66-89cc-84884f6bbf20
DEVICE=enp1s0
ONBOOT=yes
BROADCAST=192.168.3.255
DNS=61.139.2.69
DNS1=61.139.2.69
IPADDR=192.168.3.108
PREFIX=24
GATEWAY=192.168.3.1

1.10 更改文件归属

更改文件夹或者文件的所属用户

plain 复制代码
chown -R behome /data
chown username filename

更改文件夹或者文件的所属用户组

plain 复制代码
chgrp -R behome /data
chgrp username dirname

2. 防火墙

2.1 systemctl命令

查看状态

plain 复制代码
$ systemctl status firewalld.service

开启防火墙

plain 复制代码
$ systemctl start firewalld.service

关闭防火墙

plain 复制代码
$ systemctl stop firewalld.service

开机启动防火墙

plain 复制代码
$ systemctl enable firewalld.service

禁止防火墙开机启动

plain 复制代码
$ systemctl disable firewalld.service

2.2 firewall命令

查看防火墙状态

plain 复制代码
$ firewall-cmd --state

查看防火墙所有开放的端口

plain 复制代码
# 只能查看到通过 firewall-cmd 命令开放的端口
$ firewall-cmd --zone=public --list-ports

开放端口

plain 复制代码
$ firewall-cmd --zone=public --add-port=5672/tcp --permanent

关闭端口

plain 复制代码
$ firewall-cmd --zone=public --remove-port=5672/tcp --permanent

配置立即生效

plain 复制代码
$ firewall-cmd --reload

3. 端口操作命令

查看端口占用

plain 复制代码
$ lsof -i:22
$ netstat -lnpt |grep 22

查看监听端口

plain 复制代码
$ netstat -lnpt

4. gcc & make

plain 复制代码
$ yum -y install gcc gcc-c++ automake autoconf libtool make

# 版本号查询
$ gcc --version

5. 安装openssh(命令行登录)

安装

plain 复制代码
$ yum install openssh*

开机自启

plain 复制代码
$ systemctl enable sshd

启动服务

plain 复制代码
$ systemctl start sshd 或者 service sshd start

版本号

plain 复制代码
$ ssh -V

注:如果防火墙没有关闭,需要开放22端口

扩展:查看 openssl 版本命令 ==> openssl version

6. 开机自启

6.1 方式一(rc.local)

6.1.1 启用rc.local服务

修改权限

plain 复制代码
$ chmod a+x /etc/rc.d/rc.local
注:centos7及以后需要添加权限,/etc/rc.local是/etc/rc.d/rc.local的符号链接

配置rc.local服务,增加Install模块

plain 复制代码
$ vim /usr/lib/systemd/system/rc-local.service
plain 复制代码
[Unit]
Description=/etc/rc.d/rc.local Compatibility
#Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local start
TimeoutSec=0
RemainAfterExit=yes
#GuessMainPID=no

# 下面的 Install 必须有
[Install]
WantedBy=multi-user.target

启用rc.local脚本

plain 复制代码
$ systemctl enable rc-local

测试启动

plain 复制代码
$ systemctl daemon-reload
$ systemctl start rc-local

6.1.2 添加自定义脚本

添加脚本可执行权限(/opt/script/StartTomcat.sh是你的脚本路径)

plain 复制代码
$ chmod a+x /opt/script/StartTomcat.sh

修改/etc/rc.d/rc.local文件

plain 复制代码
$ vim /etc/rc.d/rc.local

# 在末尾增加如下内容(2选1)
1. echo "/opt/script/StartTomcat.sh" >> /etc/rc.d/rc.local
2. /opt/script/StartTomcat.sh

注意:如果使用看门狗

6.2 方式二(chkconfig)

将脚本移动到/etc/rc.d/init.d目录下

plain 复制代码
$ mv /opt/script/StartTomcat.sh /etc/rc.d/init.d

增加脚本的可执行权限

plain 复制代码
$ chmod +x  /etc/rc.d/init.d/StartTomcat.sh

添加脚本到开机自动启动项目中

plain 复制代码
$ cd /etc/rc.d/init.d
$ chkconfig --add StartTomcat.sh
$ chkconfig StartTomcat.sh on

移除开机自启

plain 复制代码
$ chkconfig --del StartTomcat.sh

6.3 看门狗

脚本:创建xx.sh文件,写入以下内容

plain 复制代码
#!/bin/sh
#mleaf90@gmail.com
while [ 1 ]
do
	JAVA=`ps aux | grep "java -jar /home/behome/java/monitoring-1.0.jar" | grep -v grep |grep -v watchdog |grep -v drop_caches | wc -l`
	if [ "$JAVA" = "0" ];then
			echo $JAVA
			java -jar /home/behome/java/monitoring-1.0.jar >/dev/null 2>&1 &
	elif [ $JAVA -gt 1 ];then #if > 1
	echo java is runing
			echo $JAVA
			killall java
			java -jar /home/behome/java/monitoring-1.0.jar >/dev/null 2>&1 &
	fi
	
	sleep 2
	echo $JAVA
done

配置rc.local

plain 复制代码
$ vim /etc/rc.d/rc.local

# 在文件末尾写入以下内容,后面的参数必须写,否则会导致系统无法进入桌面
/xx/xx/xxx.sh >/dev/null 2>&1 &

注:JAVA...fi 代码块可写多个,对应的 echo $JAVA 也要写多个

如果使用看门狗无法启动java程序

plain 复制代码
1.修改java程序权限
2.修改看门狗脚本权限
3.在/etc/rc.local文件中添加java环境变量(重要),环境变量参考章节8

7. Mysql 5.7

下载地址:https://downloads.mysql.com/archives/community/ ,选择Liunx - Generic,上传到/usr/local/目录下

https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

7.1 下载&解压

plain 复制代码
$ wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

$ tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.29

7.2 安装依赖

plain 复制代码
$ yum install libncurses*

7.3 创建数据和日志文件夹

plain 复制代码
$ cd /usr/local/mysql-5.7.29/

# 数据
$ mkdir -p data
# 日志
$ mkdir -p log

7.4 创建用户和组并赋权限

/usr/local/mysql-5.7.29/ 目录下执行

plain 复制代码
$ groupadd mysql
$ useradd -r -g mysql mysql		# -g:指定用户所属的用户组,-r:建立系统账号
$ chown -R mysql:mysql /usr/local/mysql-5.7.29

7.5 添加配置

vim 按 i 进入插入模式,退出命令:插入模式下依次输入: esc ,:wq(保存并退出) / :q!(强制退出)

plain 复制代码
$ vim /etc/my.cnf

# 写入以下内容,注意路径
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql-5.7.29
datadir=/usr/local/mysql-5.7.29/data
socket=/tmp/mysql.sock

lc_messages_dir = /usr/local/mysql-5.7.29/share/
lc_messages = en_US

# 字符集
character_set_server=utf8mb4
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4'

symbolic-links=0
explicit_defaults_for_timestamp=true

# 导入包允许的大小设置
max_allowed_packet=1024M

max_connections=1500

# 东八区时区,北京时区
default-time-zone = '+8:00'

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# 忽略表名大小写;1表示忽略大小写,0表示解析大小写
lower_case_table_names=1

log-error=/usr/local/mysql-5.7.29/log/err.log

pid-file=/usr/local/mysql-5.7.29/mysql.pid

[mysql]
default-character-set=utf8mb4

[client]
default-character-set=utf8mb4
socket=/tmp/mysql.sock

7.6 初始化

初始化

plain 复制代码
$ /usr/local/mysql-5.7.29/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7.29/ --datadir=/usr/local/mysql-5.7.29/data/ --user=mysql --initialize

初始密码

plain 复制代码
$ cat /usr/local/mysql-5.7.29/log/err.log

# 密码在最后一行
A temporary password is generated for root@localhost: j4O,(gOy_Rj8

7.7 命令支持

环境变量(支持使用mysql -u -p命令)

plain 复制代码
$ vim /etc/profile

# 文件末尾写入
# mysql
PATH=/usr/local/mysql-5.7.29/bin:$PATH

# 刷新环境变量配置
$ source /etc/profile

mysqldump 命令

plain 复制代码
ln -fs /usr/local/mysql-5.7.29/bin/mysqldump /usr/bin

7.8 测试:启动/停止/重启

plain 复制代码
$ cp -a /usr/local/mysql-5.7.29/support-files/mysql.server /etc/init.d/mysql

$ service mysql start	 或者  /etc/init.d/mysql start
$ service mysql stop	 或者  /etc/init.d/mysql stop
$ service mysql restart	 或者  /etc/init.d/mysql restart

7.9 密码修改&远程访问

plain 复制代码
$ mysql -uroot -p
mysql> alter user user() identified by "新密码";
mysql> use mysql;
mysql> update user set authentication_string=password('新密码') where user='root';
mysql> update user set host='%' where user='root';
mysql> flush privileges;
mysql> exit;

开放端口(仅在防火墙开启时配置)

plain 复制代码
$ firewall-cmd --zone=public --add-port=3306/tcp --permanen
$ firewall-cmd --reload

7.10 开机自启

plain 复制代码
$ cp -a /usr/local/mysql-5.7.29/support-files/mysql.server /etc/rc.d/init.d/mysql
$ vim /etc/rc.d/rc.local

# 末尾添加以下内容
  /etc/rc.d/init.d/mysql start

# 注:/etc/init.d 是指向 /etc/rc.d/init.d 的软链接,如执行过可省

7.11 依赖&字符集

7.11.1 依赖报错

plain 复制代码
$ ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
$ ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5

7.11.2 字符集查询

查看服务器字符集

plain 复制代码
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

查看表的编码格式

plain 复制代码
mysql> show create table <表名>;

注:数据库&表已创建的可以直接修改数据库或表的编码格式

7.11.3 字符集修改

修改数据库的编码格式

plain 复制代码
mysql> alter database <数据库名> character set utf8mb4 COLLATE utf8mb4_general_ci;

修改数据表格编码格式

plain 复制代码
mysql> alter table <表名> character set utf8mb4 COLLATE utf8mb4_general_ci;

修改字段编码格式

plain 复制代码
mysql> alter table <表名> change <字段名> <字段名> <类型> character set utf8mb4;

更改表字符集和表中所有字段的字符集

plain 复制代码
mysql> alter table <表名> convert to character set utf8mb4 collate utf8mb4_general_ci;

批量更改表字符集和表中所有字段字符集

plain 复制代码
1.执行下面的语句:
	SELECT 
    	CONCAT("ALTER TABLE `", TABLE_NAME,"` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;") 
    AS target_tables
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA="数据库名字,其他地方不改"
    AND TABLE_TYPE="BASE TABLE"
    
2.将结果集全部复制出来执行

7.12 错误解决

7.12.1 mysql.sock报错

修改/etc/my.cnfsocket 的位置

plain 复制代码
socket=/usr/local/mysql-5.7.29/mysql.sock

7.12.2 libmysqlclient.so.20 依赖缺失

plain 复制代码
$ ln -s /usr/local/mysql-5.7.29/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20

7.13 主从同步

前提:

	1.主从服务器网络必须互通,



	2.主库可以先创建好数据库和表,



	<font style="color:red;">3.在配置文件中不可以使用skip-networking(开启该选项后就不能远程访问MySQL)参数选项,否则从服务器将无法与主服务器进行连接并复制数据</font>

7.13.1 主服务器配置(master)

修改配置文件

plain 复制代码
$ vim /etc/my.cnf

# 增加以下配置
[mysqld]
server_id = 1               # 设置服务器编号,所有主从服务器必须唯一
log_bin = master-bin        # 启用二进制日志,并设置二进制日志文件前缀

临时关闭selinux,重启系统失效

plain 复制代码
# 关闭
$ setenforce 0

# 查看selinux的状态
$ getenforce 0

重启Mysql 服务

plain 复制代码
$ service mysql restart

创建从库账号

plain 复制代码
$ mysql -uroot -p
mysql> create user 'slave_cp'@'192.168.3.%' identified by 'SlaveAdmin';
mysql> grant replication slave on *.* to 'slave_cp'@'192.168.3.%';
mysql> exit

语句解释:

	<font style="color:#999999;">1.slave_cp账户可以从 192.168.3.% 网段内的任何主机连接主服务器,密码为SlaveAdmin</font>



    <font style="color:#999999;">2.为账号slave_cp赋予数据库复制权限(replication)</font>

只读模式

plain 复制代码
mysql> flush tables with read lock;

获取二进制日志信息(后续从服务器配置使用)

plain 复制代码
mysql> show master status;
+-------------------+----------+--------------+------------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set|
+-------------------+----------+--------------+------------------+------------------+
| master-bin.000001 |      615 |              |                  |                   |
+-------------------+----------+--------------+------------------+------------------+
1 row in set (0.00 sec)

mysql>

注:结果集中的 <font style="color:blue;">File</font><font style="color:blue;">Position</font> 后续需要使用

备份数据

plain 复制代码
$ mysqldump -u root -p --all-databases --lock-all-tables > /tmp/dbdump.sql

将备份好的数据库传到MySQL从数据库

plain 复制代码
$ scp /tmp/dbdump.sql IP地址:/tmp/

例:scp /tmp/dbdump.sql 192.168.3.109:/tmp/,按照提示操作,会要求输入密码

7.13.2 从服务器配置(slave)

修改配置文件

plain 复制代码
[mysqld]
server_id = 2             # 设置服务器编号,所有主从服务器必须唯一

临时关闭selinux,重启系统失效

plain 复制代码
# 关闭
$ setenforce 0

# 查看selinux的状态
$ getenforce 0

重启Mysql服务

plain 复制代码
$ service mysql restart

导入数据

plain 复制代码
$ mysql -u root -p < /tmp/dbdump.sql

配置从服务器连接主服务器进行数据复制(先登录mysql)

plain 复制代码
mysql> change master to
    -> master_host='192.168.5.21',
    -> master_user='slave_cp',
    -> master_password='SlaveAdmin',
    -> master_port=3306,
    -> master_log_file='master-bin.000001',
    -> master_log_pos=154;

mysql> start slave;

语句解释:

	<font style="color:#999999;">change master to:修改连接信息</font>



	<font style="color:#999999;">master_host:指定主服务器主机名或IP地址</font>



	<font style="color:#999999;">master_user:主服务器上创建的拥有复制权限的账户名称</font>



	<font style="color:#999999;">master_password:master_user账户的密码</font>



	<font style="color:#999999;">master_log_file:指定主服务器二进制日志文件名称(File)</font>



	<font style="color:#999999;">master_log_pos:主服务器二进制日志当前记录的位置(Position)</font>



	<font style="color:#999999;">start slave:开启从服务器功能进行主从连接</font>

查看从服务器状态

plain 复制代码
mysql> show slave status\G

# 正确结果
...
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
...

7.13.3 解除主库只读锁定

plain 复制代码
mysql> unlock tables;

7.13.4 错误解决

1.初始化错误:error while loading shared libraries: libaio.so.1

plain 复制代码
$ rpm -qa|grep libaio   
$ yum install  libaio-devel.x86_64

2.执行 show slave status\G 报如下错误

plain 复制代码
...
Slave_IO_Running:No
Slave_SQL_Running:Yes
...
Last_IO_Error:Fatal error:The Slave I/O thread stops because master and slave have equal MySQL Server UUIDs;these UUIDs must be different for replication to work.
...

原因:主和从有相同的MySQL服务器uuid,虚拟机克隆容易出现此问题。

查看主从库的UUID号

plain 复制代码
$ vim /var/lib/mysql/auto.cnf

[auto]
server-uuid=d3c0acb0-xxxxxx-xxxxx-xxxxx-xx01

如果UUID一样,修改从库UUID

plain 复制代码
[auto]
server-uuid=d3c0acb0-xxxxxx-xxxxx-xxxxx-xx02

重启从库Mysql服务器后,查看服务器状态

plain 复制代码
$ service mysql restart

mysql> show slave status\G;

7.14 导入导出

导出结构和数据

plain 复制代码
$ mysqldump -uroot -p bh_community > /home/java/abc.sql

指定表导出结构和数据

plain 复制代码
$ mysqldump -uroot -p bh_community wisdom_domestic > /home/java/1.sql

导入数据

plain 复制代码
mysql> source /home/java/1.sql

8. JDK8 & JRE8

8.1 卸载OpenJDK

查看OpenJDK文件

plain 复制代码
$ rpm -qa | grep java

# 结果
javapackages-tools-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.251-2.6.21.1.el7.x86_64
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2019c-1.el7.noarch
java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64
java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64

删除以下文件

plain 复制代码
$ rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.251-2.6.21.1.el7.x86_64
$ rpm -e --nodeps java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64
$ rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
$ rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64

8.2 安装Oracle JRE

下载地址:https://www.java.com/en/download/manual.jsp,上传至服务器

下载&解压&移动

plain 复制代码
$ wget https://bh-temporary.oss-cn-chengdu.aliyuncs.com/jre-8u261-linux-x64.tar.gz
$ tar -zxvf jre-8u261-linux-x64.tar.gz
$ mv jre1.8.0_261/ /usr/local/

修改环境变量

plain 复制代码
$ vim /etc/profile

# 末尾加入以下内容,JAVA_HOME路径根据实际路径修改
export JAVA_HOME=/usr/local/jre1.8.0_261
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

# 备选(可用)
export JAVA_HOME=/usr/local/jre1.8.0_261
export CLASSPATH=.:${JAVA_HOME}/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

刷新配置

plain 复制代码
$ source /etc/profile

验证

plain 复制代码
$ java -version

8.3 安装Oracle JDK

解压&移动

plain 复制代码
$ tar -zxvf jdk-8u261-linux-x64.tar.gz
$ mv jdk1.8.0_261/ /usr/local/

环境变量

plain 复制代码
$ vim /etc/profile

# 末尾加入以下内容,JAVA_HOME路径根据实际路径修改
export JAVA_HOME=/usr/local/jdk1.8.0_261
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

# 备选
export JAVA_HOME=/usr/local/jdk1.8.0_261
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=.:${JAVA_HOME}/bin:$PATH

刷新配置

plain 复制代码
$ source /etc/profile

验证

plain 复制代码
$ java -version
$ java
$ javac

9. Redis

下载地址:http://download.redis.io/releases/redis-5.0.8.tar.gz

安装gcc环境

plain 复制代码
# 版本号查询,未安装时安装
$ gcc --version

$ yum install gcc

开放端口(仅防火墙开启时配置)

plain 复制代码
$ firewall-cmd --zone=public --add-port=6379/tcp --permanen
$ firewall-cmd --reload

9.1 下载&解压&移动

下载

plain 复制代码
$ wget http://download.redis.io/releases/redis-5.0.8.tar.gz

解压&移动

plain 复制代码
$ tar -zxvf redis-5.0.8.tar.gz
$ mv redis-5.0.8/ /usr/local/
$ cd /usr/local/redis-5.0.8/

9.2 编译安装

plain 复制代码
$ make MALLOC=libc && make PREFIX=/usr/local/redis-5.0.8 install

#如果提示make找不到命令,安装gcc

9.3 测试

plain 复制代码
$ cd bin
$ ./redis-server

9.4 修改配置文件

plain 复制代码
$ mkdir /etc/redis
$ cp /usr/local/redis-5.0.8/redis.conf /etc/redis/6379.conf

$ vim /etc/redis/6379.conf

# 密码
requirepass xxxx

# 守护进程
daemonize yes

# 远程访问
# bind 127.0.0.1

# 外部访问
protected-mode yes

注:

	<font style="color:#999999;">1.关闭protected-mode模式,此时外部网络可以直接访问</font>



	<font style="color:#999999;">2.开启protected-mode保护模式,需配置bind ip或者设置访问密码</font>

9.5 开机自启

复制脚本

plain 复制代码
$ cp -a /usr/local/redis-5.0.8/utils/redis_init_script /etc/rc.d/init.d/redisd

修改脚本

plain 复制代码
$ vim /etc/rc.d/init.d/redisd

# 修改脚本,根据实际路径修改
EXEC=/usr/local/redis-5.0.8/bin/redis-server
CLIEXEC=/usr/local/redis-5.0.8/bin/redis-cli

添加自启服务:方式一

plain 复制代码
$ vim /etc/rc.d/rc.local

# 末尾添加以下内容
/etc/rc.d/init.d/redisd start

添加自启服务:方式二

plain 复制代码
$ chkconfig redisd on

# 如果出现 service redisd does not support chkconfig 错误,在启动脚本开头添加如下注释来修改运行级别:
    #!/bin/sh
    # chkconfig:   2345 90 10

9.6 错误解决

9.6.1 设置服务器密码后,使用service redis stop 出现 (error) NOAUTH Authentication required

plain 复制代码
# 修改redis服务脚本,加入如下所示的授权信息即可:
$ vim /etc/rc.d/init.d/redisd
$ CLIEXEC -a "password" -p $REDISPORT shutdown

10. ActiveMq

下载地址:http://activemq.apache.org/components/classic/download/

https://mirrors.tuna.tsinghua.edu.cn/apache//activemq/5.15.13/apache-activemq-5.15.13-bin.tar.gz

10.1 下载&解压&移动

plain 复制代码
$ wget https://mirrors.tuna.tsinghua.edu.cn/apache//activemq/5.15.13/apache-activemq-5.15.13-bin.tar.gz
$ tar -zxvf apache-activemq-5.15.13-bin.tar.gz
$ mv apache-activemq-5.15.13/ /usr/local/

10.2 启动测试

plain 复制代码
$ cd /usr/local/apache-activemq-5.15.13/bin
$ ./activemq start
$ ./activemq stop

10.3 修改账号和密码

plain 复制代码
$ cd /usr/local/apache-activemq-5.15.13/conf
$ vim jetty-realm.properties

# admin: admin,admin
# 第一个admin为账号,第二个为密码,第三个为角色

10.4 开机自启

创建软连接

plain 复制代码
$ ln -s /usr/local/apache-activemq-5.15.13/bin/activemq /etc/init.d/

修改启动脚本

plain 复制代码
$ vim /etc/init.d/activemq

# 在#!/bin/sh后面换行添加如下内容:

# chkconfig: 345 63 37
# description: Auto start ActiveMQ
JAVA_HOME=/usr/local/jre1.8.0_261
JAVA_CMD=java

# 注意:JAVA_HOME 请对应实际路径和版本

添加自启服务

plain 复制代码
$ vim /etc/rc.d/rc.local

# 末尾添加以下内容:
/etc/rc.d/init.d/activemq start

11. Nginx

11.1 安装 PCRE

plain 复制代码
$ yum install -y pcre pcre-devel

以下为备选安装方式

下载地址:https://ftp.pcre.org/pub/pcre/

作用:让 Nginx 支持 Rewrite 功能,必须安装才能编译,选最新版

下载&解压&移动

plain 复制代码
$ wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
$ tar -zxvf pcre-8.44.tar.gz
$ mv pcre-8.44/ /usr/local/

编译&安装

plain 复制代码
$ /usr/local/pcre-8.44
$ ./configure
$ ./configure && make && make install

验证

plain 复制代码
$ pcre-config --version

11.2 安装 zlib

plain 复制代码
$ yum install -y zlib zlib-devel

以下为备选安装方式

下载地址:http://zlib.net/

下载&解压&移动&编译

plain 复制代码
$ wget http://zlib.net/zlib-1.2.11.tar.gz
$ tar -zxvf zlib-1.2.11.tar.gz
$ mv zlib-1.2.11/ /usr/local/
$ cd /usr/local/zlib-1.2.11/
$ ./configure && make && make install

11.3 openSSL模块

下载地址:https://www.openssl.org/source/

plain 复制代码
$ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
$ tar -zxvf openssl-1.1.1g.tar.gz
$ mv openssl-1.1.1g/ /usr/local/

11.4 RTMP模块

plain 复制代码
$ unzip nginx-rtmp-module-master.zip
$ mv nginx-rtmp-module-master/ /usr/local/nginx-rtmp-module

11. 5 安装 nginx

下载地址:http://nginx.org/en/download.html

http://nginx.org/download/nginx-1.18.0.tar.gz

下载&解压&移动

plain 复制代码
$ wget http://nginx.org/download/nginx-1.18.0.tar.gz
$ tar -zxvf nginx-1.18.0.tar.gz
$ mv nginx-1.18.0/ /usr/local/

配置文件

plain 复制代码
$ mkdir -p /etc/nginx
$ cp /usr/local/nginx-1.18.0/conf/nginx.conf /etc/nginx/

配置&编译

plain 复制代码
$ cd /usr/local/nginx-1.18.0/
$ ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --with-http_ssl_module --with-http_stub_status_module --with-openssl=/usr/local/openssl-1.1.1g/ --add-module=/usr/local/nginx-rtmp-module;

$ make && make install

开机自启

plain 复制代码
$ vim /etc/rc.d/rc.local

# 末尾添加以下内容
/usr/local/nginx/sbin/nginx

编译错误解决:

plain 复制代码
# error: this statement may fall through [-Werror=implicit-fallthrough=]

$ vim /home/soft/nginx-1.18.0/objs/Makefile
$ 在CFLAGS参数后面加上 -Wno-implicit-fallthrough

# 参考:https://blog.csdn.net/jaybill/article/details/80164370,忽略gcc编译时switch-case中缺少break的错误

配置(推流、文件夹映射、微信支付证书)

plain 复制代码
user  root;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

# 推流模块
rtmp {
    server {
        listen 8012;
        application myapp {
            live on;  
		}
        application hls {  
            live on;
            hls on;
            hls_path /usr/local/nginx/temp/hls;   
            hls_fragment 1s;
            hls_playlist_length 3s;  
		}
    }
}

http {
    include       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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
	
	# 智慧社区
	server {
		keepalive_requests 200; #单连接请求上限次数。
        listen       80;
        server_name  www.behomesc.com; #如果是监听本机IP,直接写localhost或者不写

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location  / {   
			proxy_pass  http://127.0.0.1:9001;
		}
		
		location /community/download/ {
			#root /home/community/images/;	#静态目录
			autoindex on;
			autoindex_exact_size on;
			autoindex_localtime on;
			charset utf-8;
			#虚拟静态目录,访问路径会变成xxxx/software/software/xxx
			alias /home/community/images/;
			#add_header Content-Type "application/octet-stream";
		}
    }


	# 大屏
	server {
		keepalive_requests 200; #单连接请求上限次数。
		listen       80;
        server_name  data.behomesc.com; #如果是监听本机IP,直接写localhost或者不写
        charset utf-8;

        location / {   
			root /home/java/shequyemian;
			index login.html;
		}
    }

	# 微信支付(文件)
	server {
		#root /home/java/wx/;   #静态下载目录
		keepalive_requests 200; #单连接请求上限次数。
        listen       80;
        server_name  wxzf.behomesc.com; #如果是监听本机IP,直接写localhost或者不写
		charset utf-8;
		
        location / {   
			proxy_pass  http://127.0.0.1:9001;
		}
		
		#location ~^/wx/.*\.txt$ {   #下载路径匹配
		#	autoindex on;
		#	autoindex_exact_size on;
		#	autoindex_localtime on;
		#	charset utf-8;
        #}
		
		location /mp/ {
			autoindex on;
			autoindex_exact_size on;
			autoindex_localtime on;
			charset utf-8;
			alias /home/java/wx/;
		}
	
    }
	

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

12.向日葵

适用centos 7.8 2003

下载:http://download.oray.com/sunlogin/linux/SunloginClient-10.0.2.24779_amd64.rpm

依赖:libappindicator-gtk3

plain 复制代码
$ yum install libappindicator-gtk3

安装

plain 复制代码
$ rpm -ivh SunloginClient-10.0.2.24779_amd64.rpm

13.Teamviewer

下载最新版本

依赖

plain 复制代码
$ yum -y install epel-release

安装

plain 复制代码
$ yum -y install teamviewer_15.7.6.x86_64.rpm

如果依赖下载失败,可以尝试更换国内源

设置密码

plain 复制代码
$ sudo teamviewer --passwd NewPasswd

查看信息

plain 复制代码
$ teamviewer info

# 注:必须设置密码后才能看到远程码

启动&停止&重启

plain 复制代码
$ sudo teamviewer --daemon start
$ sudo teamviewer --daemon stop
$ sudo teamviewer --daemon restart

xfce(一般用不到)

plain 复制代码
$ sudo startxfce4

重置ID

plain 复制代码
# 1.清除旧配置文件,并重启
$ sudo teamviewer daemon stop
$ sudo rm -f /opt/teamviewer/config/global.conf
$ sudo teamviewer daemon start

# 2.重设密码
$ sudo teamviewer --passwd NewPasswd

# 3.重启
$ sudo teamviewer --daemon restart

# 4.ID查询(如果看不到ID,手动结束所有team进程后重启)
$ sudo teamviewer info

14.FFmpeg

centos 7.x

plain 复制代码
$ sudo yum -y install https://download.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

$ sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm

$ sudo yum install --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm

$ sudo yum install http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.10-1.el7.x86_64.rpm

$ sudo yum install ffmpeg

centos 8.x

plain 复制代码
$ sudo yum -y install https://download.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

$ sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm

$ sudo yum install --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm

$ sudo yum install http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.10-1.el7.x86_64.rpm

$ sudo yum install ffmpeg

开发库

plain 复制代码
$ sudo yum -y install ffmpeg-devel

版本检查

plain 复制代码
$ rpm -qi ffmpeg

$ ffmpeg -version

15.Elasticsearch 7.6.2

下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz

默认端口:9200,不能以root用户启动

启动到后台

plain 复制代码
$ ./elasticsearch &

内存限制

plain 复制代码
$ vim ../elasticsearch-7.6.2/config/jvm.options

# 最小与最大内存
-Xms1g	#-Xms128m
-Xmx1g	#-Xmx128m

错误 bootstrap checks failed

plain 复制代码
ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

解决

plain 复制代码
$ vim ../elasticsearch-7.6.2/config/elasticsearch.yml

#修改为单节点,这里的node-1为node-name配置的值(多个节点直接写后面["node-1","node-2"])
cluster.initial_master_nodes: ["node-1"]

如果还是报错,继续配置:

$ vim /etc/security/limits.conf
#在末尾添加
esyonghu soft nofile 65536
esyonghu hard nofile 65536
esyonghu soft nproc 4096
esyonghu hard nproc 4096

$ vim /etc/sysctl.conf
# 在末尾添加
vm.max_map_count = 655360
# 配置生效(成功会输出:vm.max_map_count = 655360)
sysctl -p

16.RocketMq

16.1 安装 RocketMq

官网:http://rocketmq.apache.org/

下载地址:https://mirror.bit.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip

解压

plain 复制代码
$ unzip rocketmq-all-4.7.1-bin-release.zip
$ cd rocketmq-all-4.7.1-bin-release/bin/

启动名称服务

plain 复制代码
$ cd rocketmq-all-4.7.1-bin-release/bin/

# 1.启动名称服务
$ nohup sh mqnamesrv &

# 查看日志
$ tail -f nohup.out
# The Name Server boot success. serializeType=JSON 表示启动成功

默认端口:9876

启动 Broker服务

plain 复制代码
$ nohup sh mqbroker -n 127.0.0.1:9876 &

默认端口:10911
VIP通道端口:默认端口-2(10909)

需要开放上诉两个端口

开启自动创建队列

plain 复制代码
& sh mqbroker -m
#自动创建topic(客户端和服务器版本必须一致)
autoCreateTopicEnable=true

16.2 开机自启(有问题)

脚本

plain 复制代码
#!/usr/bin/env bash
#
# rocketmq - this script starts and stops the rocketmq daemon
#
# chkconfig: - 85 15
export JAVA_HOME=/usr/local/jdk1.8.0_261
ROCKETMQ_HOME=/usr/local/rocketmq-4.7.1
ROCKETMQ_BIN=${ROCKETMQ_HOME}/bin
ADDR=`hostname -i`:9876
LOG_DIR=${ROCKETMQ_HOME}/logs
NAMESERVER_LOG=${LOG_DIR}/namesrv.log
BROKER_LOG=${LOG_DIR}/broker.log
 
start() {
if [ ! -d ${LOG_DIR} ];then
mkdir ${LOG_DIR}
fi
cd ${ROCKETMQ_HOME}
nohup sh bin/mqnamesrv > ${NAMESERVER_LOG} 2>&1 &
echo -n "The Name Server boot success..."
nohup sh bin/mqbroker -n ${ADDR} > ${BROKER_LOG} 2>&1 &
echo -n "The broker[%s, ${ADDR}] boot success..."
}
stop() {
cd ${ROCKETMQ_HOME}
sh bin/mqshutdown broker
sleep 1
sh bin/mqshutdown namesrv
}
restart() {
stop
sleep 5
start
}
 
 
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac

添加开机自启服务

plain 复制代码
$ chmod a+x rocketmq.sh
$ mv rocketmq.sh /etc/init.d/rocketmq

# 方式一
$ vim /etc/rc.local
末尾添加
/etc/init.d/rocketmq start

# 方式二
$ chkconfig --add rocketmq

管理命令

plain 复制代码
启动:service rocketmq start
关闭:service rocketmq stop
重启:service rocketmq restart

16.3 可视化控制台

下载地址:https://github.com/apache/rocketmq-externals

名称:rocketmq-console

编译打包

plain 复制代码
$ mvn clean package -Dmaven.test.skip=true

无法连接获取broker

plain 复制代码
修改配置文件:src/main/resources/application.properties

# 指向服务器(集群时写多个)
rocketmq.config.namesrvAddr=192.168.0.101:9876
# 开启登录
rocketmq.config.loginRequired=true

# 用户名、密码
修改 users.properties 文件

#修改POM文件RocketMq版本号
<rocketmq.version>4.7.1</rocketmq.version>

16.4 错误解决

1、内存不足

plain 复制代码
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)

# 解决
编辑:runserver.sh和runbroker.sh两个文件
修改:JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

2、Please set the JAVA_HOME variable in your environment, We need java(x64)

plain 复制代码
编辑:runserver.sh和runbroker.sh两个文件

在 
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java 
前面加上
export JAVA_HOME=/usr/local/jre1.8.0_261

3、无法找到topic

plain 复制代码
# 使用以下命令启动 broker
$ nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true &

4、阿里云多网卡问题

plain 复制代码
org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException:
sendDefaultImpl call timeout
plain 复制代码
修改配置文件:conf/broker.conf
加入以下配置(外网IP)
brokerIP1=120.76.62.13

# 重启broker
$ nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &

集群部署时,修改集群用的配置文件

17.Maven

17.1 直接安装

plain 复制代码
# 可能会依赖openJDK
$ yum install maven

修改仓库地址

plain 复制代码
配置文件位置
/etc/maven/settings.xml

# 依赖存放位置,可选设置,mavenRepository文件夹需要提前创建,并设置777权限
<localRepository>/home/behome/mavenRepository</localRepository>

# mirrors节点下添加阿里云仓库地址
<mirror>  
    <id>nexus-aliyun</id>  
    <mirrorOf>central</mirrorOf>    
    <name>Nexus aliyun</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
</mirror>

17.2 安装包安装

plain 复制代码
$ tar -zxvf apache-maven-3.6.3-bin.tar.gz
$ mv apache-maven-3.6.3 /usr/local/

# 环境变量
$ vim /etc/profile
末尾添加
export M2_HOME=/usr/local/apache-maven-3.6.3
export PATH=.:$JAVA_HOME/bin:$M2_HOME/bin:$PATH

# 立即生效
$ source /etc/profile

# 验证
$ mvn -v

# 配置文件位置
/usr/local/apache-maven-3.6.3/conf/settings.xml

# 查看配置信息
$ mvn help:effective-settings

18.HTML文件部署

18.1 Nginx

修改nginx.conf

plain 复制代码
$ vim /etc/nginx/nginx.conf

# root用户运行
user  root;

# http模块下server配置
listen       8081;
server_name  localhost;
location / {
    # root   dist;
    root   /home/behome/html/dist;
    index  index.html index.htm;
    # spa(单页面应用配置)
    try_files $uri $uri/ /index.html;
}

# root后面为文件夹路径,修改权限

访问:http://ip:8081/index.html

18.2 Tomcat

目录:将html项目文件夹放入webapps目录里面

修改server.xml

plain 复制代码
# 端口
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
                        
# 添加host节点
<Host name="127.0.0.1" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false"  xmlNamespaceAware="false">
	  
        <Context path="" docBase="webapps 里文件夹的名称" debug="0" reloadable="true" crossContext="true"/>
        <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="tot_log." suffix=".txt" timestamp="true"/>

	  </Host>

访问:http://ip:8080/index.html

19.PHP

下载安装编译工具

plain 复制代码
$ yum groupinstall -y 'Development Tools'

安装依赖包

plain 复制代码
$ yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel sqlite-devel

下载并解压php7.4.7

plain 复制代码
$ wget http://php.net/distributions/php-7.4.7.tar.gz
$ tar -zxvf php-7.4.7.tar.gz

编译安装

plain 复制代码
$ cd php-7.4.7
$ ./configure
$ make && make install

检查

plain 复制代码
php -v

20.GO

下载地址:https://dl.google.com/go/go1.15.3.linux-amd64.tar.gz

解压

plain 复制代码
$ tar -zxvf go1.15.3.linux-amd64.tar.gz -C /usr/local/

环境变量

plain 复制代码
$ vim /etc/profile

#添加以下内容
export PATH=$PATH:/usr/local/go/bin

$ source /etc/profile

版本

plain 复制代码
$ go version

21.禅道

手册:https://www.zentao.net/book/zentaopmshelp/40.html

启动服务

plain 复制代码
# -ap 设置Apache端口,-mp设置Mysql端口
$ /opt/zbox/zbox start -ap 8181 -mp 3307

# 默认管理员帐号
admin,123456

数据库管理

plain 复制代码
# 添加用户
$ /opt/zbox/auth/adduser.sh

# 网页(会验证两次,第一次验证是adduser.sh添加的用户名和密码)
系统:默认选择MySQL。
服务器: 127.0.0.1:mysql端口 (ip只能写127.0.0.1)
用户名: root(禅道默认的数据库用户名是 root)
密码:123456( 禅道默认的数据库密码是123456)
数据库:zentao

#命令行
登录数据库:/opt/zbox/bin/mysql -u root -P mysql端口 -p  (比如:/opt/zbox/bin/mysql -u root -P 3306 -p)
导入数据库:/opt/zbox/bin/mysql -u root -P mysql端口 -p 要导入的库名 < XXXX.sql (比如:/opt/zbox/bin/mysql -u root -P 3306 -p zentao < zentao.sql)

22.Nacos

官网:https://nacos.io/zh-cn/docs/quick-start.html

plain 复制代码
# 单机模式
$ cd /opt/nacos/bin
$ sh startup.sh -m standalone

# ubuntu系统运行脚本报错提示[符号找不到],可尝试以下命令
$ bash startup.sh -m standalone

# 默认信息
端口:8848,账号密码:nacos,控制台地址:ip:8848/nacos

23.Sentinel

官网:https://github.com/alibaba/Sentinel/wiki/控制台

plain 复制代码
# 启动命令
$ cd /opt
$ nohup java -Dserver.port=8858 -Dcsp.sentinel.dashboard.server=localhost:8858 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar >/dev/null 2>&1 &

# 默认信息
端口8080,账号密码:sentinel

24.RabbitMq

24.1 Erlang安装

官网:https://www.erlang.org/downloads

下载地址:https://github.com/rabbitmq/erlang-rpm/releases

版本介绍(el6/7/8)

plain 复制代码
# centos 6.x
erlang-23.1.4-1.el6.x86_64.rpm
# centos 7.x
erlang-23.1.4-1.el7.x86_64.rpm
# centos 8.x
erlang-23.1.4-1.el8.x86_64.rpm

安装

plain 复制代码
$ rpm -ivh erlang-23.1.4-1.el7.x86_64.rpm

24.2 rabbitmq 安装

下载地址:https://www.rabbitmq.com/install-rpm.html#downloads,版本区分同erlang

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm

依赖安装

plain 复制代码
$ yum install -y socat

安装

plain 复制代码
$ rpm -ivh rabbitmq-server-3.8.9-1.el7.noarch.rpm

启动

plain 复制代码
$ systemctl start rabbitmq-server

开机启动

plain 复制代码
$ systemctl enable rabbitmq-server

其他命令

plain 复制代码
#查看启动后的情况
$ rabbitmqctl status
#关闭服务
$ rabbitmqctl stop
#重启rabbitmq
$ systemctl restart rabbitmq-server

注意:默认配置5672端口会和activemq冲突

24.3 rabbitmq 配置

地址:http://localhost:15672/,默认账号密码:guest guest,默认端口:

plain 复制代码
4369:erlang发现口
5672:client端通信口,客户端要连接RabbitMQ服务时要用到
15672:后台管理界面ui端口,进入管理后台时访问url如:http://localhost:15672/
25672:server间内部通信口

安装目录:/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.9

启用网页版后台管理插件

plain 复制代码
$ rabbitmq-plugins enable rabbitmq_management

新建用户名为admin,密码为admin的管理员,授予管理员(administrator)权限

plain 复制代码
$ rabbitmqctl add_user admin admin
$ rabbitmqctl set_user_tags admin administrator

设置admin可以使用的虚机权限(远程访问)

plain 复制代码
$ rabbitmqctl add_vhost admin
# '/' 为虚拟主机名,即可连接的空间
$ rabbitmqctl set_permissions -p '/' admin ".*" ".*" ".*"

修改配置

plain 复制代码
$ vim /etc/rabbitmq/rabbitmq.conf

# AMQP 0-9-1 and 1.0 port,默认5672
listeners.tcp.default = 5672

# 数据统计间隔,毫秒
collect_statistics_interval = 30000

# web管理,默认15672
management.tcp.port = 15672
management.tcp.ip = 0.0.0.0
# web登录会话过期时间
management.login_session_timeout = 60

资料

plain 复制代码
# rabbitmq配置
https://www.rabbitmq.com/configure.html#config-items

# management插件配置介绍
https://www.rabbitmq.com/management.html#statistics-interval

24.4 插件管理

插件管理

plain 复制代码
#插件列表: 
$ rabbitmq-plugins list 
#启动插件: 
$ rabbitmq-plugins enable XXX   (XXX为插件名)
#停用插件: 
$ rabbitmq-plugins disable XXX

插件安装

plain 复制代码
插件下载地址:https://www.rabbitmq.com/community-plugins.html

插件上传至此目录(插件为ez后缀):
/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.9/plugins

启用插件
$ rabbitmq-plugins enable rabbitmq_delayed_message_exchange

24.5 docker安装rabbitmq

拉取rabbitmq镜像

plain 复制代码
$ docker pull rabbitmq:3.8.1-management

查看镜像:

plain 复制代码
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
rabbitmq            3.8.1-management    36ed80b6a1b1        5 weeks ago         180MB

运行容器:

plain 复制代码
$ docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 -v /data:/var/lib/rabbitmq rabbitmq:3.8.1-management

运行容器查询

plain 复制代码
$ docker ps

25.Seata

下载&解压&移动

plain 复制代码
$ tar -zxvf seata-server-1.4.0.tar.gz
$ mv seata /usr/local/seata-1.4.0/

File+DB模式启动配置

plain 复制代码
$ cd /usr/local/seata-1.4.0/conf/

1.vim打开registry.conf ,配置config 和registry 的节点都为file:type = "file",默认即为file
2.vim打开file.conf ,配置mode 为db 并配置相关数据库链接

启动服务

plain 复制代码
$ cd /usr/local/seata-1.4.0/bin/
$ ./seata-server.sh -h 127.0.0.1 -p 8091 -m db -n 1
# 后台启动
$ nohup ./seata-server.sh -h 127.0.0.1 -p 8091 -m db -n 1 >/dev/null 2>&1 &

nacos对接参考:

https://blog.csdn.net/jixieguang/article/details/110621561

26.Minio

官网地址:https://docs.min.io/cn/minio-quickstart-guide.html

GNU/Linux_x64_intel版下载地址:https://dl.min.io/server/minio/release/linux-amd64/minio

配置&启动

plain 复制代码
$ mkdir -p /usr/local/minio
$ mv minio /usr/local/minio

# 通过环境变量设置key,每次启动都需要设置
$ export MINIO_ACCESS_KEY=behome
$ export MINIO_SECRET_KEY=behome@2020

# 前台启动 
$ cd /usr/local/minio
$ ./minio server /data/minio

# 后台启动,默认端口9000
$ mkdir -p /data/minio/log
$ nohup ./minio server --address 0.0.0.0:9000 /data/minio > /data/minio/log/minio.log 2>&1 &

# /data/minio 为文件存放目录
# 配置文件 config.json 路径
/data/minio/.minio.sys/config

API介绍

plain 复制代码
Go:         https://docs.min.io/docs/golang-client-quickstart-guide
Java:       https://docs.min.io/docs/java-client-quickstart-guide
Python:     https://docs.min.io/docs/python-client-quickstart-guide
JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
.NET:       https://docs.min.io/docs/dotnet-client-quickstart-guide

TLS证书目录(root用户启动为例)

plain 复制代码
$ /root/.minio/certs

$ {HOME}/.minio/certs
相关推荐
小黑爱编程几秒前
【LInux】HTTPS是如何实现安全传输的
linux·安全·https
BeyondESH5 分钟前
Linux线程同步—竞态条件和互斥锁(C语言)
linux·服务器·c++
hanniuniu137 分钟前
详细解读,F5服务器负载均衡的技术优势
运维·服务器·负载均衡
鱼饼6号21 分钟前
Prometheus 上手指南
linux·运维·centos·prometheus
Asher Gu27 分钟前
Linux系统编程入门 | 模拟实现 ls -l 命令
linux
c无序44 分钟前
【Linux进程控制】进程程序替换
linux
m0_609000422 小时前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
小安运维日记3 小时前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
CoolTiger、6 小时前
【Vmware16安装教程】
linux·虚拟机·vmware16
m0_741768857 小时前
使用docker的小例子
运维·docker·容器