简要说明
目前支持的安装版本
Nginx:1.9.8
Mysql:5.7 、8.0.30
Redis:7.0.5
USER=root
MYSQL_PASSWORD=Bacmp_123
MYSQL_VERSION=8
脚本中的用户、mysql密码、mysql版本为可配置项
版本可选5.7或者8.0.30-需要5.7版本【MYSQL_VERSION=8 改成 MYSQL_VERSION=5】
密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。
开始安装
先下载收集好的redis/mysql/nginx和各个依赖
工具包
链接:https://pan.baidu.com/s/1CxBAotQ0-U6bVaNuU1Pi-A?pwd=TOOL
提取码:TOOL
创建目录-然后通过FTP软件把工具包传到该目录下(此类软件网上有很多)
# 创建并进入该目录-把工具包传到该目录下
mkdir /easy
cd /easy
# 解压工具包-解压出来后就得到tool文件
tar -zvxf centos7-tool.tar.gz
在/easy目录下创建&编辑.sh文件
# 脚本必须和tool在同级目录下
vi tool.sh
把脚本内容复制进.sh文件-然后保存
完整脚本如下
#!/bin/sh
USER=root
MYSQL_PASSWORD=Bacmp_123
MYSQL_VERSION=8
SH_FILE_PATH=$(dirname "$(echo \"$0\" | xargs readlink -f)")
LIB_FILE_PATH=$SH_FILE_PATH/tool/lib
MYSQL_FILE_PATH=$SH_FILE_PATH/tool/mysql
REDIS_FILE_PATH=$SH_FILE_PATH/tool/redis
NGINX_FILE_PATH=$SH_FILE_PATH/tool/nginx
ZLIB_FILE=zlib-1.2.7-18
ZLIB_SYSTEM=$(rpm -qa | grep -E 'zlib-[0-9]+' | sed 's/\.[^\.]*\.[^\.]*$//')
echo "正在检查工具安装-请稍后"
echo "============================================================"
rpm -qa | grep mysql &>/dev/null
if [ $? -ne 0 ];then
echo "本机没有安装MYSQL-正在尝试安装"
rpm -e mariadb-libs --nodeps &>/dev/null
rpm -qa | grep net-tools &>/dev/null
if [ $? -ne 0 ];then
echo "-->依赖-net-tools-缺少-正在安装"
rpm -ivh $LIB_FILE_PATH/mysql-lib/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-net-tools-安装成功"
else
echo "-->依赖-net-tools-安装失败"
fi
else
echo "-->依赖-net-tools-本机已安装"
fi
rpm -qa | grep perl &>/dev/null
if [ $? -ne 0 ];then
echo "-->依赖-perl-缺少-正在安装"
rpm -ivh $LIB_FILE_PATH/mysql-lib/perl-5.16.3-297.el7.x86_64.rpm $LIB_FILE_PATH/mysql-lib/perl-libs-5.16.3-297.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-perl-安装成功"
else
echo "-->依赖-perl-安装失败"
fi
else
echo "-->依赖-perl-本机已安装"
fi
rpm -qa | grep libaio &>/dev/null
if [ $? -ne 0 ];then
echo "-->依赖-libaio-缺少-正在安装"
rpm -ivh $LIB_FILE_PATH/mysql-lib/libaio-0.3.109-13.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-libaio-安装成功"
else
echo "-->依赖-libaio-安装失败"
fi
else
echo "-->依赖-libaio-本机已安装"
fi
if [ $MYSQL_VERSION -eq 8 ];then
rpm -ivh $MYSQL_FILE_PATH/8.0.30/*.rpm
sudo systemctl start mysqld
if [ $? -eq 0 ];then
sudo systemctl enable mysqld
TEMP_PASSWORD=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')
echo "请手动输入初始密码:$TEMP_PASSWORD"
mysql -u $USER -p --connect-expired-password -e "ALTER USER '$USER'@'localhost' IDENTIFIED BY '$MYSQL_PASSWORD';CREATE USER '$USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD';GRANT ALL PRIVILEGES ON *.* TO '$USER'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;"
echo "MYSQL版本8.0.30-安装成功-新密码:$MYSQL_PASSWORD"
else
echo "MYSQL-安装失败"
fi
else
rpm -ivh $MYSQL_FILE_PATH/5.7/*.rpm
sudo systemctl start mysqld
if [ $? -eq 0 ];then
sudo systemctl enable mysqld
TEMP_PASSWORD=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')
echo "请手动输入初始密码:$TEMP_PASSWORD"
mysql -u $USER -p --connect-expired-password -e "ALTER USER '$USER'@'localhost' IDENTIFIED BY '$MYSQL_PASSWORD';GRANT ALL PRIVILEGES ON *.* TO '$USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' WITH GRANT OPTION;FLUSH PRIVILEGES;"
echo "MYSQL-版本5.7-安装成功-新密码:$MYSQL_PASSWORD"
else
echo "MYSQL-安装失败"
fi
fi
else
echo "本机已安装MYSQL"
fi
echo "============================================================"
rpm -qa | grep redis &>/dev/null
if [ $? -ne 0 ];then
echo "本机没有安装REDIS-正在尝试安装"
rpm -qa | grep zlib &>/dev/null
if [ $? -ne 0 ];then
echo "-->依赖-zlib-缺少-正在尝试安装"
rpm -ivh $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-zlib-安装成功"
else
echo "-->依赖-zlib-安装失败"
fi
else
if [[ "$(echo -e "$ZLIB_SYSTEM\n$ZLIB_FILE" | sort -V | head -n1)" == "$ZLIB_SYSTEM" ]];then
echo "-->依赖-zlib-版本不符正在更新"
rpm -Fvh $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-zlib-更新完成"
else
echo "-->依赖-zlib-更新失败"
fi
fi
if [[ "$(echo -e "$ZLIB_SYSTEM\n$ZLIB_FILE" | sort -V | head -n1)" == "$ZLIB_FILE" ]];then
echo "-->依赖-zlib-版本不符正在更新"
rpm -Uvh --oldpackage $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-zlib-更新完成"
else
echo "-->依赖-zlib-更新失败"
fi
fi
echo "-->依赖-zlib-本机已安装"
fi
rpm -qa | grep zlib-devel &>/dev/null
if [ $? -ne 0 ];then
rpm -ivh $LIB_FILE_PATH/devel/zlib-devel-1.2.7-18.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-zlib-devel-安装成功"
else
echo "-->依赖-zlib-devel-安装成功"
fi
else
echo "-->依赖-zlib-devel-本机已安装"
fi
rpm -qa | grep pcre-devel &>/dev/null
if [ $? -ne 0 ];then
rpm -ivh $LIB_FILE_PATH/devel/pcre-devel-8.32-17.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-pcre-devel-安装成功"
else
echo "-->依赖-pcre-devel-安装成功"
fi
else
echo "-->依赖-pcre-devel-本机已安装"
fi
gcc -v &>/dev/null
if [ $? -ne 0 ];then
echo "-->依赖-gcc-缺少-正在尝试安装"
rpm -ivh $LIB_FILE_PATH/gcc/*.rpm --nodeps --force
if [ $? -eq 0 ];then
echo "-->依赖-gcc-安装成功"
else
echo "-->依赖-gcc-安装成功"
fi
else
echo "-->依赖-gcc-本机已安装"
fi
tar -zvxf $REDIS_FILE_PATH/redis-7.0.5.tar.gz -C $SH_FILE_PATH
sudo make -C $SH_FILE_PATH/redis-7.0.5 && sudo make -C $SH_FILE_PATH/redis-7.0.5 PREFIX=$SH_FILE_PATH/redis install
echo "
[Unit]
Description=redis
After=network.target
[Service]
User=$USER
ExecStart=$SH_FILE_PATH/redis/bin/redis-server
[Install]
WantedBy=multi-user.target" >> /etc/systemd/system/redis.service
sudo systemctl daemon-reload
sudo systemctl start redis
if [ $? -eq 0 ];then
sudo systemctl enable redis
echo "REDIS-版本7.0.5-安装成功"
else
echo "REDIS-安装失败"
fi
else
echo "本机已安装REDIS"
fi
echo "============================================================"
rpm -qa | grep nginx &>/dev/null
if [ $? -ne 0 ];then
echo "本机没有安装NGINX-正在尝试安装"
rpm -qa | grep zlib &>/dev/null
if [ $? -ne 0 ];then
echo "-->依赖-zlib-缺少-正在尝试安装"
rpm -ivh $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-zlib-安装成功"
else
echo "-->依赖-zlib-安装失败"
fi
else
if [[ "$(echo -e "$ZLIB_SYSTEM\n$ZLIB_FILE" | sort -V | head -n1)" == "$ZLIB_SYSTEM" ]];then
echo "-->依赖-zlib-版本不符正在更新"
rpm -Fvh $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-zlib-更新完成"
else
echo "-->依赖-zlib-更新失败"
fi
fi
if [[ "$(echo -e "$ZLIB_SYSTEM_2\n$ZLIB_FILE" | sort -V | head -n1)" == "$ZLIB_FILE" ]];then
echo "-->依赖-zlib-版本不符正在更新"
rpm -Uvh --oldpackage $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-zlib-更新完成"
else
echo "-->依赖-zlib-更新失败"
fi
fi
echo "-->依赖-zlib-本机已安装"
fi
rpm -qa | grep zlib-devel &>/dev/null
if [ $? -ne 0 ];then
rpm -ivh $LIB_FILE_PATH/devel/zlib-devel-1.2.7-18.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-zlib-devel-安装成功"
else
echo "-->依赖-zlib-devel-安装成功"
fi
else
echo "-->依赖-zlib-devel-本机已安装"
fi
rpm -qa | grep pcre-devel &>/dev/null
if [ $? -ne 0 ];then
rpm -ivh $LIB_FILE_PATH/devel/pcre-devel-8.32-17.el7.x86_64.rpm
if [ $? -eq 0 ];then
echo "-->依赖-pcre-devel-安装成功"
else
echo "-->依赖-pcre-devel-安装成功"
fi
else
echo "-->依赖-pcre-devel-本机已安装"
fi
gcc -v &>/dev/null
if [ $? -ne 0 ];then
echo "-->依赖-gcc-缺少-正在尝试安装"
rpm -ivh $LIB_FILE_PATH/gcc/*.rpm --nodeps --force
if [ $? -eq 0 ];then
echo "-->依赖-gcc-安装成功"
else
echo "-->依赖-gcc-安装成功"
fi
else
echo "-->依赖-gcc-本机已安装"
fi
tar -zvxf $NGINX_FILE_PATH/nginx-1.9.8.tar.gz -C $SH_FILE_PATH
cd $SH_FILE_PATH/nginx-1.9.8 && ./configure --prefix=$SH_FILE_PATH/nginx
sudo make -C $SH_FILE_PATH/nginx-1.9.8 && sudo make -C $SH_FILE_PATH/nginx-1.9.8 install
echo "
[Unit]
Description=nginx
After=network.target
[Service]
User=$USER
Type=forking
ExecStart=$SH_FILE_PATH/nginx/sbin/nginx
ExecReload=$SH_FILE_PATH/nginx/sbin/nginx -s reload
ExecStop=ExecReload=$SH_FILE_PATH/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target" >> /etc/systemd/system/nginx.service
sudo systemctl daemon-reload
sudo systemctl start nginx
if [ $? -eq 0 ];then
sudo systemctl enable nginx
echo "NGINX-版本1.20.1-安装成功"
else
echo "NGINX-安装失败"
fi
else
echo "本机已安装NGINX"
fi
echo "============================================================"
firewall-cmd --zone=public --add-port=3306/tcp --permanent &>/dev/null
firewall-cmd --zone=public --add-port=6379/tcp --permanent &>/dev/null
firewall-cmd --zone=public --add-port=80/tcp --permanent &>/dev/null
firewall-cmd --reload &>/dev/null
if [ $? -ne 0 ];then
echo "工具检查完毕-防火墙开放端口失败[ 6379 | 3306 | 80 ]-请检查防火墙是否开启"
else
echo "工具检查完毕-防火墙已开放端口[ 6379 | 3306 | 80 ]"
fi
echo "============================================================"
执行脚本
sh tool.sh
查看运行状态
# 查看运行状态
sudo systemctl status mysqld
sudo systemctl status redis
sudo systemctl status nginx