linux系统下的软件安装部署配置全流程

一、linux系统初始化操作

1.配置阿里云yum源

(1)创建备份目录
mkdir /etc/yum.repos.d/repos.bak
(2)移动原有目录所有文件至备份目录下
mv /etc/yum.repos.d/* /etc/yum.repos.d/repos.bak
 (3)下载阿里yum源和epel源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

 (4)清除缓存并建立新缓存

yum clear all
yum makecache

二、数据库

MySQL

1.yum安装方式

(1)下载MySQL

yum -y install mariadb-server mariadb

2.源代码编译安装方式

(1)前期准备工作

编译前安装依赖

yum -y install ncurses-devel openssl-devel bison gcc gcc-c++ make cmake boost

下载Boost_1_59_0

cd /usr/local/src
wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
tar -xvzf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost

新建组和msyql用户禁止登录 shell,创建mysql目录及数据库目录

groupadd -r mysql
useradd -r -g mysql -s /bin/false -M mysql
mkdir -p /usr/local/mysql/data

获取代码源码包

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.40.tar.gz

解压下载文件

tar -xvzf mysql-5.7.40.tar.gz
(2)make开始编译安装

执行cmake,生成makefile,用于编译安装

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_SYSTEMD=1 \
-DWITH_BOOST=/usr/local/boost

执行make开始安装

make && make install

修改PATH变量并重新加载profile文件

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

设置权限

cd /usr/local/mysql
chown -R mysql:mysql .

修改my.cnf配置文件

echo -e '[mysqld]\nbasedir=/usr/local/mysql/\ndatadir=/usr/local/mysql/data\npid_file=/usr/local/mysql/data/mysqld.pid\nlog_error=/usr/local/mysql/data/mysql.log\nsocket=/tmp/mysql.sock' > /etc/my.cnf

将MySQL服务器的启动脚本复制到/etc/init.d/mysqld目录下

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

在mysqld.service,把默认的 pid 文件指定到了/var/run/mysqld/目录,需要修改pid默认文件位置

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system/
vim /usr/lib/systemd/system/mysqld.service

 修改两行pid文件位置

PIDFile=/usr/local/mysql/data/mysqld.pid
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS

重启mysql服务

systemctl enable mysqld
systemctl restart mysqld
(3)登陆MySQL

查看系统默认密码

grep password /usr/local/mysql/data/mysql.log

修改默认密码

alter user root@localhost identified by '123456'; 

3.rpm包安装方式

(1)解决MySQL安装所需依赖关系并获取rpm包下载地址
所需4个软件包
mysql-client 5.6.50
mysql-devel
mysql-server
mysql-shared
https://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-client-5.6.50-1.el7.x86_64.rpm
https://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-devel-5.6.50-1.el7.x86_64.rpm
https://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-server-5.6.50-1.el7.x86_64.rpm
https://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-shared-5.6.50-1.el7.x86_64.rpm

Redis

1.YUM安装方式

yum -y install redis
# 启动redis
redis-server /etc/redis.conf
# 关闭redis
redis-cli shutdown
# 连接redis
redis-cli

2.编译安装方式

# 环境部署
yum install -y gcc-c++
# 下载redis压缩包
wget https://github.com/redis/redis/archive/7.2.4.tar.gz
# 解压文件
tar -xvzf 7.2.4.tar.gz
#移动文件至opt目录
mv redis-7.2.4/ /opt
# 执行make编译安装
make && makeinstall
# 创建文件夹并将redis配置文件复制到创建的目录
mkdir /usr/local/bin/config
cp /opt/redis-7.2.4/redis.conf /usr/local/bin/config

# 设置redis后台启动
# 修改配置文件的 daemonize no为yes
vim /usr/local/bin/config/redis.conf

 3.Redis启停控制

# 启动Redis服务
redis-server /usr/local/bin/config/redis.conf
# 连接redis
redis-cli -p 6379
# 停止Redis服务 连接Redis后执行shutdown
shutdown

4.配置文件详解

# 网络配置
bind 127.0.0.1        # 绑定的IP
protected-mode yes    # 保护模式
port 6379             # 端口设置

# 通用配置
daemonize yes         # 是否以守护进程开启 默认为no
pidfile /var/run/redis_6379.pid        # 如果以后台方式运行,需要指定一个pid文件
                       
# 日志
# Specify the server verbosity level.
# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
# nothing (nothing is logged)
loglevel notice       # 日志文件等级
logfile ""            # 日志文件位置名
databases 16          # 数据库数量,默认16个
always-show-logo no   # 是否总是显示LOGO

# 快照
save 900 1            # 在900秒内,有1key进行了修改,就进行持久化操作
save 300 10           # 在300秒内,有10key进行了修改,就进行持久化操作
save 60 10000         # 在60秒内,有10000key进行了修改,就进行持久化操作

stop-writes-on-bgsave-error yes        #如果持久化出错,是否继续工作
rdbcompression yes    # 是否压缩rdb文件,需要消耗cpu资源
rdbchecksum yes       # 保存rbd文件时,是否进行校验
dir ./                # rdb文件保存目录

# 限制clients        
maxclients 10000      # 设置最大连接数
maxmemory <bytes>     # 设置最大内存容量
maxmemory-policy noeviction        # 内存达到上限的处理策略
# 1、volatile-lru:    只对设置了过期时间的key进行LRU(默认值)
# 2、a11keys-lru:     删除lru算法的key
# 3、volatile-random: 随机删除即将过期key
# 4、a11keys-random:  随机删除
# 5、volatile-ttl:    删除即将过期的
# 6、noeviction:      永不过期,返回错误

# AOF配置 APPEND ONLY
appendonly no         #是否开始AOF模式,默认用rdb方式持久化
appendfilename "appendonly.aof"        # 持久化文件名

# appendfsync always # 每次修改都会sync,消耗性能
appendfsync everysec # 每秒执行一次sync,可能会丢失一秒数据
# appendfsync no     # 不执行sync,操作系统自己同步,数据最快


5.密码设置

(1)配置文件设置
# 修改配置文件
vim /usr/local/bin/config/redis.conf
# 在security模块中添加
requirepass 123456
 (2)命令设置
# 修改redis配置
vim /usr/local/bin/config/redis.conf
# 设置密码为123456
config set requirepass "123456"

6.主从复制搭建

(1)修改配置文件(长效)
# 修改redis配置文件
vim /usr/local/bin/config/redis.conf
# 修改bind为本机IP
bind 192.168.*.*
# 删除replicaof注释
slaveof [主节点IP] [主节点端口]
# 让从机恢复主机身份
slaveof no one
# 停止Redis服务 连接Redis后执行shutdown
shutdown
# 连接redis
redis-cli -h 配置文件指定IP -p 6379
(2)命令配置(短时)
# 查看主从复制状态
info replication
# redis-slave服务器指定某服务器为redis-master节点
slaveof [IP地址] [端口号]

7.哨兵模式

# 新增哨兵配置文件
mkdir /usr/local/bin/config/
vim /usr/local/bin/config/sentinel.conf
# 在哨兵配置文件中输入以下内容
#            被监控的名称   host    port  1
sentinel monitor myredis redis的IP 端口号 1
# 启动哨兵
redis-sentinel /usr/local/bin/config/sentinel.conf

MongoDB

1.软件包安装方式

# 下载安装包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz
# 解压
tar -xvzf mongodb-linux-x86_64-rhel70-4.2.1.tgz
# 移动mongodb目录到/usr/local/mongo下
mkdir -p /usr/local/mongo
mv mongodb-linux-x86_64-rhel70-4.2.1/* /usr/local/mongo/ 
# cd到mongo目录并创建数据库目录,日志目录,配置文件目录和进程描述文件目录
cd /usr/local/mongo
mkdir -p data/db        
mkdir -p logs           
mkdir -p conf           
mkdir -p pids
# 在conf目录,增加配置文件,并增加内容
vim /usr/local/mongo/conf/mongo.conf
#数据保存路径
dbpath=/usr/local/mongo/data/db/
#日志保存路径
logpath=/usr/local/mongo/logs/mongo.log
#进程描述文件
pidfilepath=/usr/local/mongo/pids/mongo.pid
#日志追加写入
logappend=true
bind_ip_all=true
#mongo默认端口
port=27017
#操作日志容量
oplogSize=10000
#开启子进程
fork=true
# 启动MongoDB服务端
/usr/local/mongo/bin/mongod -f /usr/local/mongo/conf/mongo.conf
# 启动MongoDB客户端
/usr/local/mongo/bin/mongo --host 127.0.0.1 --port 27017

2.副本集搭建

中间件

Tomcat

1.环境配置

# 下载JDK
yum install -y java-1.8.0-openjdk-devel.x86_64
vim /etc/profile
# 在profile文件中添加如下内容
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=/usr/local/tomcat



# 刷新环境配置
source /etc/profile

2.下载安装

# 下载tomcat11
wget wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.82/bin/apache-tomcat-8.5.82.tar.gz --no-check-certificate
# 解压
tar -xvzf apache-tomcat-8.5.82.tar.gz
# 移动tomcat至/usr/local目录下
mv apache-tomcat-8.5.82 /usr/local/tomcat

3.启停控制

sh /usr/local/tomcat/bin/startup.sh
sh /usr/local/tomcat/bin/shutdown.sh

 4.配置管理

# 配置文件目录
/usr/local/tomcat/conf/server.xml
# 默认网页文件路径
/usr/local/tomcat/webapps/ROOT

Nginx

1.yum方式安装

yum -y install nginx
systemctl start nginx

2.编译方式安装

(1)安装编译环境及第三方依赖
yum -y install gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel
(2)下载Nginx源码包并编译安装
wget https://nginx.org/download/nginx-1.24.0.tar.gz
tar -xvzf nginx-1.24.0.tar.gz
cd nginx-1.24.0/
./configure  --prefix=/usr/local/nginx
make && make install

3.启动停止和重载

# 启动
/usr/local/nginx/sbin/nginx             
# 停止
/usr/local/nginx/sbin/nginx -s stop    
# 重载
/usr/local/nginx/sbin/nginx -s reload  

4.配置管理

vim /usr/local/nginx/conf/nginx.conf

5.反向代理

/*修改server_name 后为用户访问的地址
在location中新增一条proxy_pass为代理的目标IP或域名; */   
server {
        listen       80;
        server_name 192.168.126.129;

        location / {
            root   html;
            proxy_pass http://127.0.0.1:8080;      
            index  index.html index.htm;
        }

6.负载均衡

(1)负载均衡的配置
/*新增upstream模块,并修改proxy_pass*/
upstream myserver{
	server 192.168.126.129:8080;
	server 192.168.126.131:8080;
	}
	server {
        listen       80;
        server_name 192.168.126.129;

        location / {
            root   html;
            proxy_pass http://myserver;
            index  index.html index.htm;
        }
(2)负载均衡的策略
a.轮询(默认策略)

    每个请求按时间顺序逐一分配到不同的后端服务器

b.权重

    weight 代表权重, 默认为 1,权重越高被分配的客户端越多

upstream myserver{
	server 192.168.126.129:8080 weight=10;
	server 192.168.126.131:8080 weight=10;
	}
c.ip_hash

    每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器

  upstream myserver {
    	ip_hash;							
        server 208.208.128.122:8081 ;   
        server 208.208.128.122:8082 ;
    }

7.动静分离

    location / {
            root   html;
            proxy_pass http://myserver;
            index  index.html index.htm;
        }
    location /www/ {
            root   /data/; 
        }
    location /image/ {
            root   /data/;
            autoindex    on;
        }

8.高可用架构

(1)安装keepalived
yum install -y keepalived
(2)修改keepalived配置文件
vim /etc/keepalived/keepalived.conf
global_defs { 
   notification_email { 
     acassen@firewall.loc 
     failover@firewall.loc 
     sysadmin@firewall.loc 
   } 
   notification_email_from Alexandre.Cassen@firewall.loc 
# 本机IP
   smtp_server 192.168.126.129  
   smtp_connect_timeout 30 
   router_id LVS_DEVEL 
} 
  
vrrp_script chk_http_port { 
  
   script "/usr/local/src/nginx_check.sh" 

#(检测脚本执行的间隔)    
   interval 2      
  
   weight 2 
  
} 
  
vrrp_instance VI_1 {     
# 备份服务器上将 MASTER 改为 BACKUP
	state MASTER   
# 填写网卡信息 ip a       
	interface ens33
# 主、备机的 virtual_router_id 必须相同,相当于唯一标识       
	virtual_router_id 51  
# 主、备机取不同的优先级,主机值较大,备份机值较小       
	priority 100     
    advert_int 1 
    authentication { 
        auth_type PASS 
        auth_pass 1111 
    } 
    virtual_ipaddress {   
# VRRP虚拟地址,需要设置在一个网段下       
		192.168.126.50 
    } 
}
 (3)增加检测脚本
vim /usr/local/src/nginx_check.sh
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
# nginx启动脚本位置
    /usr/local/nginx/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi
(4)修改hosts文件
vim /etc/hosts
127.0.0.1 LVS_DEVEL
(5)启动keepalived
systemctl start keepalived.service

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值