技术干货:Shell脚本一键部署及运用企业级LNMP架构----------------------------小董偷懒系列

本文主要是介绍技术干货:Shell脚本一键部署及运用企业级LNMP架构----------------------------小董偷懒系列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Shell脚本一键部署及运用企业级LNMP架构

  • 来了来了干货来了 ~~偷懒就对了~~

来了来了干货来了 偷懒就对了

在这里插入图片描述
不懂什么意思 请移步我上上一篇博客点击这里

#!/bin/bash
#
IP=20.0.0.27
PASSWORD=123456clear# 判断脚本执行者是否为root用户
if [ "`whoami`" != "root" ];thenecho "请以root用户身份执行该脚本!" exit 1
fi# 交互提示是否确认进行安装
echo "----------欢迎使用LAMP+Discuz一键安装脚本 V1.1---2020-09-04-----"
echo "软件包版本:httpd-2.4.29、mysql-5.6.26、php-5.6.11"
echo "注意事项:"
echo "1.本脚本适用于Centos7.x(其他系统未测试),请在安装前先将安装包拷贝到/opt目录下"
echo "2.本脚本适用于阿里云服务器,在安装前请修改脚本第3、4行的IP,服务器内、外网IP地址"
echo "3.在安装过程中请保证网络畅通"
echo "4.请使用source命令执行该脚本"
echo "---------------------------------------------------------------"
echo ""
while true;do
read -p "是否进行开始安装?(y/n)" a
if [ $a = y ];thenecho "开始为您安装Apache..."breakelif [ $a = n ];thenecho "用户已取消安装,退出程序..."exit 1elseecho "输入有误,请重新输入!" 
fi
done# 安装LAMP服务依赖环境
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl bzip2 expect ncurses-devel autoconf cmake gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-devel# 安装Apache
tar jxvf /opt/httpd-2.4.29.tar.bz2 -C /opt
tar zxvf /opt/apr-util-1.6.0.tar.gz -C /opt
tar zxvf /opt/apr-1.6.2.tar.gz -C /opt
mv /opt/apr-1.6.2 /opt/httpd-2.4.29/srclib/apr
mv /opt/apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util
cd /opt/httpd-2.4.29
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
make && make install
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
sed -i '2a# chkconfig:35 85 21' /etc/init.d/httpd
cd /etc/init.d/
chkconfig --add httpd
sed -i "51c Listen ${IP}:80" /usr/local/httpd/conf/httpd.conf
sed -i "52c #Listen 80" /usr/local/httpd/conf/httpd.conf
sed -i "198c ServerName www.test.com:80" /usr/local/httpd/conf/httpd.conf
ln -s /usr/local/httpd/bin/* /usr/local/bin/
setenforce 0 && systemctl stop firewalld
service httpd start# 安装MySQL
tar zxvf /opt/mysql-5.6.26.tar.gz -C /opt
cd /opt/mysql-5.6.26/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc/ \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
make && make install
/usr/bin/expect <<-EOF
spawn cp support-files/my-default.cnf /etc/my.cnf 
expect { "?"{send "\r";}
}
expect eof
EOF
cp /opt/mysql-5.6.26/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld
chkconfig mysqld --level 35 on
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
cd /usr/local/mysql/scripts/
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
sed -i '46c basedir=/usr/local/mysql' /etc/init.d/mysqld
sed -i '47c datadir=/home/mysql' /etc/init.d/mysqld
echo "bind-address=0.0.0.0" >> /etc/my.cnf
service mysqld start
/usr/bin/expect <<-EOF
spawn mysqladmin -u root -p password "$PASSWORD"
expect { ":"{send "\r";}
}
expect eof
EOF# 安装PHP
tar xjvf /opt/php-5.6.11.tar.bz2 -C /opt
cd /opt/php-5.6.11
./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring
make && make install
cp /opt/php-5.6.11/php.ini-development /usr/local/php5/php.ini
ln -s /usr/local/php5/bin/* /usr/local/bin/
sed -i '381aAddType application/x-httpd-php .php' /usr/local/httpd/conf/httpd.conf
sed -i '382aAddType application/x-httpd-php-source .phps' /usr/local/httpd/conf/httpd.conf
sed -i '255cDirectoryIndex index.php index.html' /usr/local/httpd/conf/httpd.conf
ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
service httpd stop
service httpd start
  • 安装包可以私聊我
  • 代码不是太严谨 但是可以看
    在这里插入图片描述

这篇关于技术干货:Shell脚本一键部署及运用企业级LNMP架构----------------------------小董偷懒系列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/350748

相关文章

MybatisPlus中几种条件构造器运用方式

《MybatisPlus中几种条件构造器运用方式》QueryWrapper是Mybatis-Plus提供的一个用于构建SQL查询条件的工具类,提供了各种方法如eq、ne、gt、ge、lt、le、lik... 目录版本介绍QueryWrapperLambdaQueryWrapperUpdateWrapperL

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

Spring IOC核心原理详解与运用实战教程

《SpringIOC核心原理详解与运用实战教程》本文详细解析了SpringIOC容器的核心原理,包括BeanFactory体系、依赖注入机制、循环依赖解决和三级缓存机制,同时,介绍了SpringBo... 目录1. Spring IOC核心原理深度解析1.1 BeanFactory体系与内部结构1.1.1

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

python协程实现高并发的技术详解

《python协程实现高并发的技术详解》协程是实现高并发的一种非常高效的方式,特别适合处理大量I/O操作的场景,本文我们将简单介绍python协程实现高并发的相关方法,需要的小伙伴可以了解下... 目录核心概念与简单示例高并发实践:网络请求协程如何实现高并发:核心技术协作式多任务与事件循环非阻塞I/O与连接

MongoDB搭建过程及单机版部署方法

《MongoDB搭建过程及单机版部署方法》MongoDB是一个灵活、高性能的NoSQL数据库,特别适合快速开发和大规模分布式系统,本文给大家介绍MongoDB搭建过程及单机版部署方法,感兴趣的朋友跟随... 目录前言1️⃣ 核心特点1、文档存储2、无模式(Schema-less)3、高性能4、水平扩展(Sh

MySQL集群高可用架构的两种使用小结

《MySQL集群高可用架构的两种使用小结》本文介绍了MySQL的两种高可用解决方案:组复制(MGR)和MasterHighAvailability(MHA),文中通过示例代码介绍的非常详细,对大家的学... 目录一、mysql高可用之组复制(MGR)1.1 组复制核心特性与优势1.2 组复制架构原理1.3

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke