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

相关文章

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

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口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

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2