技术干货: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

相关文章

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2