注意:如果是输入的是字母的或者是输入等于0时,则会出现以下两种情况!!!

查看端口:

进到Nginx根目录查看创建好的测试网页:

注意:关闭防火墙或者设置防火墙规则!!!


访问Nginx网页:

访问PHP测试页:

访问地址:192.168.197.180/dog1.php

访问MySQL测试页:

访问地址:192.168.197.180/dog2.php

脚本代码如下:

#!/bin/bash
. /etc/init.d/functions
MMM=`rpm -qa | grep mariadb`
cat <<END
+----------------------------------+
|                                  |
|         This  is  a LNMP         |
|                                  |
|         1.安装Nginx              |
|         2.安装MySQL              |
|         3.安装PHP                |
|         4.配置LNMP环境           |
+----------------------------------+
END
#node 1. read  -p "请你输入一个数字:" NUMexpr $NUM + 1 &> /dev/nullif [ "$?" -ne 0 ];thenaction "对不起,请你输入整数!!!" /bin/falseexit 1elif [ "$NUM" -eq 0 ];thenaction "对不起,请你输入比0大的数字!!!" /bin/falseexit 1fi
#node 2.[ "$NUM" = "1" ] && {echo  "开始安装Nginx服务,请稍后.........."yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y &>/dev/null && useradd -M -s /sbin/nologin nginx && cd /usr/local/src && wget http://nginx.org/download/nginx-1.12.2.tar.gz &>/dev/null && tar zxf nginx-1.12.2.tar.gz && \
cd /usr/local/src/nginx-1.12.2 && ./configure --prefix=/usr/local/nginx --with-http_dav_module   --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx &>/dev/null && make &>/dev/null && make install &>/dev/nullif  [ -f /usr/local/nginx/sbin/nginx ];thenln -s /usr/local/nginx/sbin/nginx /usr/local/sbinfiif [ "$?" -eq 0 ];thenaction "恭喜你,成功安装Nginx!!!" /bin/true && /usr/local/nginx/sbin/nginxelseaction "对不起,安装Nginx失败! ! !" /bin/falseexit 1fi
}
#node 3.[ "$NUM" = "2" ] && {echo "开始安装MySQL服务,请稍后........"if [ -n $MMM ];thenrpm  -e mariadb-libs --nodeps 2&> /dev/nullelseaction "mariadb卸载失败!!!" /bin/falseexit 1fi
cd /usr/local/src/ && wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz &>/dev/null  && tar zxfm  mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz && mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql && cd /usr/local/mysql/ && mkdir data && mkdir log && echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile && source /etc/profile && groupadd mysql && useradd -r -g mysql -s /bin/false mysql
cat << EOF > /etc/my.cnf
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log_error=/usr/local/mysql/log/mysql.err
EOFif [ -f /etc/my.cnf ];thenchmod 750 data/ && chown -R mysql . && chgrp -R mysql . &&  bin/mysqld --initialize --user=mysql && cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start &> /dev/nullelseecho "MySQL安装失败!!!!"exit 1fi
ln -s /usr/local/mysql/bin/mysql /usr/local/sbin
ln -s /usr/local/mysql/bin/mysqladmin /usr/local/sbin
oo=`cat /usr/local/mysql/log/mysql.err | grep password | awk '{print $11}'`
mysqladmin -uroot -p${oo} password pwd123 &>/dev/nullif [ "$?" -eq 0 ];thenaction "MySQL数据库安装成功,密码为:pwd123" /bin/trueelseaction "MySQL数据库安装失败密码初始化失败!" /bin/falseexit 1fi
}
#node 4.
[ "$NUM" = "3" ] && {echo "开始安装PHP依赖包................"yum -y install libxml2-devel libcurl-devel openssl-devel bzip2-devel libjpeg-devel libpng libpng-devel freetype-devel libmcrypt libmcrypt-devel &>/dev/nullif [ "$?" -eq 0 ];thenaction "恭喜你,成功安装PHP依赖包!!!!" /bin/trueelseaction "对不起,PHP依赖包安装失败!!!!" /bin/falseexit 1fi
cd /usr/local/src && {echo  "开始安装PHP请稍后,过程稍微有点长..........."   wget http://cn2.php.net/distributions/php-5.6.27.tar.gz &> /dev/null &&  tar zxf php-5.6.27.tar.gz && cd php-5.6.27/ && ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc  --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt-dir  --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl &>/dev/null && make &>/dev/null && make install &>/dev/null
}
if [ "$?" -eq 0 ];thenaction "恭喜你,PHP安装成功!!!!" /bin/trueelseaction "PHP安装失败,请检查环境..." /bin/falseexit 1
fi
cd /usr/local/src/php-5.6.27/ && {
echo "开始配置PHP,请稍后..............."       cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpmchkconfig --add php-fpmchkconfig php-fpm on
}if [ "$?" -eq 0 ];thencp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.confelseaction "对不起,PHP配置出现严重错误!!!!" /bin/falseexit 1fiif [ ! -d /usr/local/php5.6/etc/php-fpm.conf ];thensed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/pm.max_children = 5/pm.max_children = 300/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/pm.start_servers = 2/pm.start_servers = 20/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/user = nobody/user = nginx/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/group = nobody/group = nginx/g' /usr/local/php5.6/etc/php-fpm.confelseaction "对不起,PHP环境配置出错!!!!" /bin/falseexit 1fiif [ "$?" -eq 0 ];thenaction "恭喜你PHP配置启动成功!!!!" /bin/true &&  systemctl start php-fpmelseaction  "对不起,PHP配置启动失败!!!" /bin/falseexit 1fi
}
#node 5.
[ "$NUM" = "4" ] && {echo "开始配置Nginx解析PHP,请稍后.............." if [ -f /usr/local/nginx/conf/nginx.conf ];thensed -i 's/index  index.html index.htm;/index  index.php index.html index.htm;/g' /usr/local/nginx/conf/nginx.confsed -i 's/#    root           html;/    root           html;/g' /usr/local/nginx/conf/nginx.confsed -i 's/#    fastcgi_pass   127.0.0.1:9000;/    fastcgi_pass   127.0.0.1:9000;/g' /usr/local/nginx/conf/nginx.confsed -i 's/#    fastcgi_index  index.php;/    fastcgi_index  index.php;/g' /usr/local/nginx/conf/nginx.confsed -i 's*#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;*    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;*g' /usr/local/nginx/conf/nginx.confsed -i 's/#    include        fastcgi_params;/    include        fastcgi.conf;/g' /usr/local/nginx/conf/nginx.confsed -i '71d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;70a}' /usr/local/nginx/conf/nginx.confsed -i '65d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;64alocation ~ \\.php$ {' /usr/local/nginx/conf/nginx.confelseaction "Nginx解析PHP失败!!!" /bin/falseexit 1fi
echo "开始创建PHP测试页................"
cat << EOF >/usr/local/nginx/html/dog1.php
<?php
phpinfo();
?>
EOF
echo "开始创建MySQL测试页................"
cat << EOF >/usr/local/nginx/html/dog2.php
<?php
$link=mysql_connect('127.0.0.1','root','pwd123');
if($link)echo "connection success......";
mysql_close();
?>
EOF
/usr/local/nginx/sbin/nginx -s reload
if [ "$?" -eq 0 ];thenaction "恭喜你LNMP环境搭建成功!!!" /bin/trueelseaction "对不起,您的LNMP环境搭建失败!!!!" /bin/falseexit 1
fi
}

2018新年快乐!!!祝你狗年吉祥!!!旺旺旺!!!!

好了到这里有关编写shell脚本实现自动化搭建安装LNMP平台全过程配置就演示完毕了!!!!

希望对你有所帮助!!!!@@@再见!!!!!

编写shell脚本实现自动化搭建安装LNMP平台全过程配置详解相关推荐

  1. python调用shell脚本的参数_使用python执行shell脚本 并动态传参 及subprocess的使用详解

    最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数 执行shell脚本这个有多种方法 最后还是选择了subprocess这个python标准库 subpr ...

  2. shell脚本中常见的一些特殊符号和作用详解

    在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我们编写的代码更加简洁和高效,这里给大家汇总下: 1.{} 大括号: 用法一:通配符扩展eg: ls my_{finge ...

  3. Windows下搭建Tomcat集群的配置详解

    < Windows下搭建Tomcat集群基础入门详解 > 前言 在搭建 < Apache + Tomcat 实现Web服务器集群 > 前我们还需要实现 Tomcat集群实现Se ...

  4. 基于 CentOS Mysql 安装与主从同步配置详解

    CentOS Mysql 安装 Mysql (Master/Slave) 主从同步 1.为什么要使用主从同步 1.如果主服务器出现问题,可以快速切换到从服务器提供的服务 2.可以在从服务器上执行查询操 ...

  5. 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解

    前言:FENCE工具的原理及作用 FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的"脑裂"现象,FENCE设备的出现,就 ...

  6. 企业级负载均衡集群——通过fence设备解决集群节点之间争抢资源的现象(FENCE搭建、高可用服务配置详解)

    1.FENCE工具的原理及作用 FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的"脑裂"现象 FENCE设备的出现,就是 ...

  7. Nginx安装与使用(配置详解)

    前言 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大 ...

  8. Centos7 搭建DNS服务器与原理配置详解

    在搭建我们自己DNS服务器之前,先必须了解下DNS服务器的作用和原理. DNS是在互联网上进行域名解析到对应IP地址的服务器,保存互联网上所有的IP与域名的对应信息,然后将我们对网址的访问,解析成IP ...

  9. Windows10 安装Oracle 11g 的配置详解(1)

    一.安装Oracle 11g前的环境准备 配置 NET Framework 3.5 如果没有提前安装好NET Framework 3.5,会在安装快结束的时候报错,很坑. 首先打开 控制面板 找到 程 ...

最新文章

  1. AI一分钟 | 豪华太空酒店预计2022年前开业;彭蕾卸任蚂蚁金服董事长,井贤栋接任;京东推出一秒能写千条文案的AI系统
  2. 小学生python入门-小学生都开始学的Python编程到底是什么?
  3. 用ANSYS画矩形_钢轨打磨用复合砂轮磨削温度场的研究
  4. mysql建表后添加约束_MYSQL建表完成之后添加约束
  5. UNIX环境--线程
  6. Codeforces 719B Anatoly and Cockroaches(元素的交叉排列问题)
  7. Kafka AKHQ 安装部署
  8. MySQL8数据恢复
  9. 机器学习算法——支持向量机SVM7(支持向量回归)
  10. 发生致命事故8个月后,优步被获准在匹兹堡恢复自动驾驶测试
  11. Android百度地图自定义添加Marker点
  12. 计算机知识与技能竞赛配图,“高教杯”全国大学生先进制图技术与技能大赛
  13. leetcode 1567
  14. 电力设备状态检修信息管理系统--开篇 电力设备检修分类【文摘】
  15. MQTT网关连接华为云物联网平台应用
  16. 视觉slam14讲学习(一)之se3上的定位表示:轨迹显示与轨迹误差
  17. Codeforces 855B - Marvolo Gaunt's Ring
  18. 我从小就有一个疑问,为什么所有的星球都是漂浮在空中的?
  19. 求1+2+…+n的和不大于1000的最大自然数n
  20. 计算机二级ppt的考试题型,计算机二级MS_Office考试PPT题型汇总附答案

热门文章

  1. 网络笔记(8) 世界这么大,我想出网关:欧洲十国游与玄奘西行
  2. 【Cadence17.2】Capture CIS封装设置、DRC、BOM单生成和网表生成
  3. 梦幻跨服购买需要登录服务器未响应,梦幻西游跨服购买你角色,跨服购买可以连角色转过去...
  4. 【转】全面质量管理常用七种工具
  5. html5 微格式,科技常识:HTML5 微格式和相关的属性名称
  6. vivo Y66解账户锁刷机包 线刷包救砖教程
  7. opencv学习—简单车牌识别操作(python)
  8. 142道Linux精选面试题!(附答案)
  9. 【Python】输入身份证号,输出出生日期
  10. HTML5定稿了,为什么原生App世界将被颠覆