头图

总结以下常用的需要安装的运行依赖,目前用到的包括nginx,nodejs,git,mongodb,redis,mysql,postgresql。

安装nginx

  • 安装所需插件
# 安装gcc 
yum -y install gcc
# pcre、pcre-devel安装 
yum install -y pcre pcre-devel
# zlib安装 
yum install -y zlib zlib-devel
# 安装openssl 
yum install -y openssl openssl-devel
  • 安装nginx
# 下载nginx安装包
wget http://nginx.org/download/nginx-1.20.0.tar.gz
# 解压压缩包
tar -zxvf  nginx-1.20.0.tar.gz
# 切换到/usr/local/nginx-1.20.0下编译安装
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make
make install
  • 启动停止nginx(推荐使用systemd进行管理)
#查找安装路径
whereis nginx
cd /usr/local/nginx/sbin
# 启动nginx
./nginx
# 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s stop
# 此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s quit
# 重启nginx
./nginx -s reload
  • 使用systemd管理
# 创建nginx.service文件
vim /lib/systemd/system/nginx.service
# 写入内容如下
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 管理nginx服务
# 启动nginx
systemctl start nginx.service
# 停止nginx
systemctl stop nginx.service
# 重启nginx
systemctl reload nginx.service
# 将nginx加入开机启动
systemctl enable nginx.service
# 将nginx从开机启动中移除
systemctl disable nginx.service

参考链接:

https://blog.csdn.net/qq_3734...
https://www.cnblogs.com/boony...
https://blog.csdn.net/yunweim...

安装nodejs

  • 下载nodejs压缩包

官方地址:http://nodejs.cn/download/

wget https://npm.taobao.org/mirrors/node/v14.16.1/node-v14.16.1-linux-x64.tar.xz
  • 解压缩
tar -xvf node-v14.16.1-linux-x64.tar.xz
mv node-v14.16.1-linux-x64 nodejs
  • 创建软链接
# 建立node软链接
ln -s /usr/local/nodejs/bin/node /usr/local/bin
# 建立npm 软链接
ln -s /usr/local/nodejs/bin/npm /usr/local/bin
  • 更换镜像源
# 设置国内淘宝镜像源
npm config set registry https://registry.npm.taobao.org
# 查看设置信息
npm config list
  • 验证是否成功
node -v
npm -v

参考链接:
https://blog.csdn.net/qq_3795...

安装git

  • 安装依赖包
sudo yum install -y gcc-c++
sudo yum install -y zlib-devel perl-ExtUtils-MakeMaker
  • 去官网下载最新的git源码包
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.31.1.tar.gz
  • 解压,配置,安装
# 解压
tar -zxvf git-2.31.1.tar.gz
# 创建一个文件夹作为git安装路径
mkdir git
cd git-2.30.1
# 指定安装路径
./configure --prefix=/usr/local/git
# 编译
make
# 安装
make install
  • 设置环境变量
vim /etc/profile
# 在文件末尾追加git执行文件目录
PATH=$PATH:/usr/local/git/bin
# 使文件生效
source /etc/profile
  • 查看git版本
git --version

安装mongodb

  • 下载MongoDB安装包
  • 解压安装包
tar -xzvf mongodb-linux-x86_64-rhel70-4.2.13.tgz
# 重命名
mv mongodb-linux-x86_64-rhel70-4.2.13 mongodb-4.2
  • 安装MongoDB
cd mongodb-4.2
# 创建log和data用于存放日志和数据
mkdir log data
# 添加配置文件mongodb.conf
vim mongodb.conf
# 添加以下配置
# mongod.conf

# for documentation of all options, see:
 #   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
 systemLog:
   destination: file
   logAppend: true
   path: /usr/local/mongodb-4.2/log/mongodb.log

# Where and how to store data.
 storage:
   dbPath: /usr/local/mongodb-4.2/data
   journal:
     enabled: true
 #  engine:
 #  wiredTiger:

# how the process runs
 processManagement:
   fork: true  # fork and run in background
   pidFilePath: /usr/local/mongodb-4.2/mongod.pid  # location of pidfile
   timeZoneInfo: /usr/share/zoneinfo

# network interfaces
 net:
   port: 27017
   bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
  • 设置环境变量
vim /etc/profile
# 在文件末尾追加git执行文件目录
PATH=$PATH:/usr/local/mongodb-4.2/bin
# 使文件生效
source /etc/profile
  • 使用systemd管理mongodb
# 创建mongodb.service文件
vim /lib/systemd/system/mongodb.service
# 写入内容如下
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/mongodb-4.2/bin/mongod --config  /usr/local/mongodb-4.2/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb-4.2/bin/mongod --shutdown --config  /usr/local/mongodb-4.2/mongodb.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 管理mongodb状态
# 启动mongodb
systemctl start mongodb.service
# 停止mongodb
systemctl stop mongodb.service
# 重启mongodb
systemctl reload mongodb.service
# 将mongodb加入开机启动
systemctl enable mongodb.service
# 将mongodb从开机启动中移除
systemctl disable mongodb.service

参考文章:

https://www.cnblogs.com/lijia...
https://www.cnblogs.com/shiky...

安装Redis

  • 下载并解压安装包
wget http://download.redis.io/releases/redis-6.2.2.tar.gz
tar -zxvf redis-6.2.2.tar.gz
  • 编译并安装
# 创建安装目录
mkdir redis
# 编译
cd redis-6.2.2
make
# 安装到指定目录
make install PREFIX=/usr/local/redis
  • 创建配置文件
# 从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录
cp /usr/local/redis-6.2.2/redis.conf /usr/local/redis/bin/
# 修改 redis.conf 文件
daemonize yes #守护进程 默认值为:no
#bind 127.0.0.1 #绑定地址 将其注释
protected-mode no #关闭保护模式,此时外部网络可以直接访问 默认值为:yes
  • 使用systemd管理
# 创建redis.service文件
vim /lib/systemd/system/redis.service
# 添加以下内容
[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • redis管理命令
systemctl start redis.service   #启动redis服务
systemctl stop redis.service   #停止redis服务
sysemctl restart redis.service   #重新启动服务
systemctl status redis.service   #查看服务当前状态
systemctl enable redis.service   #设置开机自启动
systemctl disable redis.service   #停止开机自启动
  • 创建redis命令软链接
ln -s /usr/local/redis/bin/redis-cli /usr/bin/
  • 使用redis-cli测试
redis-cli

参考链接:https://www.cnblogs.com/heqiu...

安装mysql

  • 检查系统是否安装过mysql
# 查询所有mysql 对应的文件夹,全部删除
whereis mysql
find / -name mysql
  • 卸载CentOS7系统自带的mariadb
# 查看系统自带的Mariadb
[root@VM-12-9-centos ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
# 卸载系统自带的Mariadb
[root@VM-12-9-centos ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
# 删除etc目录下的my.cnf ,一定要删掉,等下再重新建
[root@VM-12-9-centos ~]# rm -rf /etc/my.cnf
  • 检查有无安装过mysql 用户组,没有的话创建
# 检查mysql 用户组是否存在
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql

# 创建mysql 用户组和用户
groupadd mysql
useradd -r -g mysql mysql
  • 下载安装包,从官网安装下载,我下载的位置在/usr/local/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
  • 解压安装
# 解压
tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
# 重命名为mysql
mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql
# 更改mysql 目录下所有文件夹所属的用户组和用户,以及权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
  • 初始化mysql
# 创建data目录
mkdir /usr/local/mysql/data
# 初始化,控制台中会打印临时密码
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
# 保存结尾处的临时密码,后续使用客户端时需用此密码登录
[root@VM-12-9-centos bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
2021-04-27T06:23:19.882305Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-04-27T06:23:20.192179Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-04-27T06:23:20.273220Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-04-27T06:23:20.343826Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0fa9325e-a721-11eb-a87c-5254009d3ad8.
2021-04-27T06:23:20.348927Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-04-27T06:23:21.462427Z 0 [Warning] CA certificate ca.pem is self signed.
2021-04-27T06:23:21.570135Z 1 [Note] A temporary password is generated for root@localhost: qitk>aF<%5yO
  • 编写配置文件my.cnf,并添加配置
vim /etc/my.cnf
# 插入以下配置
[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
  • 启动mysqld
/usr/local/mysql/support-files/mysql.server start
  • 使用systemd进行管理
vim /lib/systemd/system/mysql.service
# 添加以下配置
[Unit]
Description=MySQL Server
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Service]
User=mysql
Group=mysql
# mysql pid文件记录的是当前mysqld进程的pid
# 通过Mysqld_safe启动mysql时,mysqld_safe会检查pid文件,未指定PID文件时,pid文件默认名为$DATADIR/`hostname`.pid
PIDFile=/usr/local/mysql/data/VM-12-9-centos.pid
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Restart=on-failure
RestartPreventExitStatus=1
TimeoutSec=0
PrivateTmp=false

[Install]
WantedBy=multi-user.target
  • 使用systemd管理mysql命令
systemctl start mysql.service   #启动mysql服务
systemctl stop mysql.service   #停止mysql服务
sysemctl restart mysql.service   #重新启动服务
systemctl status mysql.service   #查看服务当前状态
systemctl enable mysql.service   #设置开机自启动
systemctl disable mysql.service   #停止开机自启动
  • 添加客户端软链接
ln -s /usr/local/mysql/bin/mysql /usr/bin/
  • 客户端登录并修改密码
# 密码为之前初始化mysql时保存的临时密码
mysql -u root -p
# 修改密码
set password for root@localhost = password('新密码');
  • 设置允许所有ip访问

    # 切换到mysql库
    use mysql;
    # 查看用户表
    SELECT Host,User FROM user;
    # 更新用户表
    UPDATE user SET Host= '%' WHERE User= 'root' LIMIT 1;
    # 强制刷新权限
    flush privileges;
    # 其中%的意思是允许所有的ip远程访问,如果需要指定具体的某个ip就写上具体的ip即可

参考文章:

https://www.cnblogs.com/wpnr/...
https://blog.csdn.net/supaher...
https://www.cnblogs.com/justf...
https://www.cnblogs.com/mmykd...

安装postgresql

  • 因为不能使用CentOs的 root账号 启动PostgreSql。所以在这里,我先创建一个专门的用于用以操作PostgreSql
    useradd postgresql
  • 安装依赖。如果你的服务器已安装过gcc相关内容,这步可忽略
yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel  python-devel gcc-c++ openssl-devel cmake gcc* readline-devel
  • 解压安装
# 解压postgreSql
tar -vxf postgresql-13.2.tar.gz
# 创建PostgreSql的安装目录以及数据目录
mkdir -p /usr/local/postgresql/data
chown -R postgresql:postgresql /usr/local/postgresql
# 进入解压目录
cd postgresql-13.2/
# 执行configure
./configure --prefix=/usr/local/postgresql --with-python --with-libxml --with-libxslt
# make并安装
make & make install
  • 初始化数据库
# 切换到之前创建的用户
su postgresql
# 初始化数据库
/usr/local/postgresql/bin/initdb -D /usr/local/postgresql/data -E UTF8
# 修改配置文件
vim /usr/local/postgresql/data/postgresql.conf
# 修改允许访问的ip地址
listen_addresses='*'
# 修改网桥配置信息
vim /usr/local/postgresql/data/pg_hba.conf
# 修改IPV4 local connections
# 其中192.168.0.0/16 代表192.168.1.1到192.168.255.255都可以访问
host all all 192.168.0.0/16 md5
  • 配置环境变量
# 先切回root用户
su root
# 添加环境变量
vim /etc/profile
# 追加
# postgresql
export PATH=$PATH:/usr/local/postgresql/bin
export PGHOME=/usr/local/postgresql
export PGDATA=/usr/local/postgresql/data/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib/
# 重新加载配置文件
source /etc/profile
  • 启动,停止postgresql
# 切回postgresql用户
su postgresql
# 启动服务
pg_ctl start -D $PGDATA -l /usr/local/postgresql/server.log
# 进入默认数据库
psql postgres
# 创建有密码的用户
CREATE USER postgres WITH PASSWORD '123456';
# 停止服务
pg_ctl stop -D $PGDATA
# 查看服务状态
pg_ctl status -D $PGDATA
# 重启服务
pg_ctl reload -D $PGDATA
  • 使用systemd管理postgresql
# 切到root用户
su root
# 添加配置文件
vim /lib/systemd/system/postgresql.service

[Unit]
Description=PostgreSQL database server
After=network.target
After=syslog.target

[Service]
Type=forking

User=postgresql

Environment=PGDATA=/usr/local/postgresql/data
ExecStart=/usr/local/postgresql/bin/pg_ctl start -D ${PGDATA} -s -w
ExecStop=/usr/local/postgresql/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/usr/local/postgresql/bin/pg_ctl reload -D ${PGDATA} -s

TimeoutSec=300

[Install]
WantedBy=multi-user.target
  • 在postgresql用户使用systemd命令
systemctl start postgresql.service   #启动postgresql服务
systemctl stop postgresql.service   #停止postgresql服务
sysemctl restart postgresql.service   #重新启动服务
systemctl status postgresql.service   #查看服务当前状态
systemctl enable postgresql.service   #设置开机自启动
systemctl disable postgresql.service   #停止开机自启动

参考文章:

https://blog.csdn.net/qq_2663...
https://blog.csdn.net/darkdra...
https://www.postgresql.org/do...

安装zookeeper和kafka

kafka依赖与zookeeper,虽然kafka自己也带了一个zookeeper,但我这里还是使用单独的zookeeper安装。

安装zookeeper

zookeeper官方下载地址: https://archive.apache.org/di...
我的应用一般都放在/usr/local路径下

  • 解压安装包

    cd /usr/local
    tar -zxvf zookeeper-3.4.14
    cd zookeeper-3.4.14
  • 修改配置文件

    # 复制zoo文件
    cp conf/zoo_sample.cfg conf/zoo.cfg
    # 修改文件
    vim zoo.cfg

    修改数据和日志的输出路径,并在对应目录手动创建路径

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/tmp/zookeeper/data
    dataLogDir=/tmp/zookeeper/logs
    # the port at which the clients will connect
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
  • 修改环境变量

    vim /etc/profile

    添加环境变量路径

    # zookeeper
    export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.14
    export PATH=$ZOOKEEPER_HOME/bin:$PATH

    生效环境变量

    source /etc/profile
  • systemd管理

    vim /lib/systemd/system/zookeeper.service

    添加配置

    [Unit]
    Description=Apache Zookeeper server
    Documentation=http://zookeeper.apache.org
    Requires=network.target remote-fs.target
    After=network.target remote-fs.target
    
    [Service]
    Type=forking
    # jdk环境变量
    Environment=JAVA_HOME=/usr/local/jdk1.8.0_211
    ExecStart=/usr/local/zookeeper-3.4.14/bin/zkServer.sh start
    ExecStop=/usr/local/zookeeper-3.4.14/bin/zkServer.sh stop
    ExecReload=/usr/local/zookeeper-3.4.14/bin/zkServer.sh restart
    User=root
    Group=root
    
    [Install]
    WantedBy=multi-user.target

安装kafka

kafka官方下载地址:https://archive.apache.org/di...

  • 解压安装包

    tar -zxvf kafka_2.10-0.9.0.1.tgz
  • 修改配置文件

    vim config/server.properties

    修改ip地址为本机ip

    listeners=PLAINTEXT://192.168.197.129:9092
    advertised.listeners=PLAINTEXT://192.168.197.129:9092
  • systemd管理

    vim /lib/systemd/system/kafka.service

    添加配置

    [Unit]
    Description=Apache Kafka Server
    Documentation=http://kafka.apache.org/documentation.html
    Requires=zookeeper.service
    
    [Service]
    Type=simple
    # jdk环境变量
    Environment=JAVA_HOME=/usr/local/jdk1.8.0_211
    ExecStart=/usr/local/kafka_2.10-0.9.0.1/bin/kafka-server-start.sh /usr/local/kafka_2.10-0.9.0.1/config/server.properties
    ExecStop=/usr/local/kafka_2.10-0.9.0.1/bin/kafka-server-stop.sh
    Restart=on-abnormal
    
    
    [Install]
    WantedBy=multi-user.target
  • 启动zookeeper和kafka

    systemctl start zookeeper
    systemctl start kafka
  • 创建kafka消息

    cd /usr/local/kafka_2.10-0.9.0.1
    bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --partitions 1 --replication-factor 1 --create --topic test
  • 创建kafka生产者

    bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test
  • 创建kafka消费者

    bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic testflume --zookeeper 127.0.0.1:2181
  • 集群搭建
    参考:
    https://www.cnblogs.com/panwe...
    https://zhuanlan.zhihu.com/p/...

wkArtist
9 声望4 粉丝