大家好,我是延凯,本人原来在CSDN写作已经快一年了 都是相关Linux运维这方面的技术知识,现在搬到博客园也是我一直想的,本博客主要写Python,docker,shell等偏向开发云计算等知识点,谢谢各位,声明:(原先的CSDN也会不定时更新Linux运维等方面的知识!)

#!/bin/bash
# DATE:Wed Jan 17 1# ywyankerp@163.com
#this is a yankerp  # The Nginx service is being installed
ROOT_ID=0
ML=/usr/local/src
NGINX_ML=/usr/local/src/nginx-1.12.2
PML=/usr/local/src/php-5.6.27
QD=`netstat -anpt | grep 80 | awk '{print $7}' | cut -d "/" -f2 | cut -d ":" -f1`
ADDR=`ip a | grep eno16777728$ | awk '{print $2}' | cut -d "/" -f1`
MMM=`netstat -anput | grep mysqld | awk '{print $4}' | cut -d ":" -f4`
MAR=`rpm -qa | grep mariadb`
cd $ML && {
wget http://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null
mv Centos-7.repo /etc/yum.repos.d/Centos-Base.repo
yum clean all &> /dev/null
yum makecache &> /dev/null
}  if [ $? -eq 0 ]  then  echo "Yum源更新完毕,开始安装!!!"  else  echo "Yum源error"  exit 1
fi
echo "Yum源配置成功"  if [ "$UID" -eq "$ROOT_ID" ]  then  echo "root用户运行中" && systemctl stop firewalld && yum install -y gcc gcc-c++  pcre-devel zlib-devel openssl-devel &> /dev/null  else  echo "请使用Root用户运行"  exit 1
fi
echo "依赖包安装完成!"
cd $ML || {  echo "进入目录失败!!!"  exit 1
}  wget http://nginx.org/download/nginx-1.12.2.tar.gz &> /dev/null && {
tar zxf nginx-1.12.2.tar.gz && groupadd www && useradd -g www www -s /sbin/nologin
}
echo "Nginx包下载成功"
cd $NGINX_ML && {  ./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=www --group=www &> /dev/null && make &> /dev/null && make install &> /dev/null
}  if [ $? -eq "0" ]  then  ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin ;nginx && echo "Nginx启动成功,请访问http://$ADDR:80"  else  echo "Nginx启动失败!!!"  exit 1
fi  #Start installing MySQL5.7!
echo "开始下载MySQL二进制安装包,请稍等..."
if [ -z "$MAR" ]  then  echo "开始安装MySQL"
fi
if [ -n "$MAR" ]  then  rpm -e mariadb-libs --nodeps && echo "卸载mariadb成功!正式安装MySQL"
fi  cd $ML || {  echo "进入目录失败!!!"  exit 1
}  wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz &> /dev/null && {
tar zxf 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
EOF  if [ ! -d /etc/my.cnf ]  then  chmod 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/null  else  echo "错误!!!"
fi
if [ $? -eq "0" ]  then  echo "MySQL正式安装完成杀青!"  else  echo "MySQL安装失败!!!"  exit 1
fi  #PHP install sccessy
yum -y install libxml2-devel libcurl-devel openssl-devel bzip2-devel &> /dev/null
if [ $? -eq 0 ]  then  echo "依赖包安装成功!!!"  else  echo "依赖包安装失败!!!"
fi  cd $ML || {  echo "进入目录失败!!!"  exit 1
}  wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz &> /dev/null  && {
tar zxf libmcrypt-2.5.7.tar.gz && cd libmcrypt-2.5.7/ && ./configure --prefix=/usr/local/libmcrypt &> /dev/null && make &> /dev/null && make install &> /dev/null
}  if [ $? -eq 0 ]  then  echo "Libmcrypt安装成功!"  else  echo "Libmcrypt-ERROR!"  exit 1
fi
# PHP install
cd $ML || {  echo "进入目录失败!!!"  exit 1
}
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-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts  &> /dev/null
}
if [ $? -eq 0 ]  then  make &> /dev/null  && make install &> /dev/null  &&  echo "PHP编译安装成功,正在配置请稍等...."  else  echo "PHP安装失败"
fi  cd $PML || {  echo "进入目录失败!!!"  exit 1
}
cp php.ini-production /etc/php.ini && {
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && chmod +x /etc/init.d/php-fpm && chkconfig --add php-fpm && chkconfig php-fpm on
}  if [ $? -eq 0 ]  then  cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf && echo "复制主配置成功"  else  echo "PHP权限失败,请重试!"
fi  if [ ! -d /usr/local/php5.6/etc/php-fpm.conf ]  then  sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /usr/local/php5.6/etc/php-fpm.conf  sed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g' /usr/local/php5.6/etc/php-fpm.conf  sed -i 's/pm.max_children = 5/pm.max_children = 300/g' /usr/local/php5.6/etc/php-fpm.conf  sed -i 's/pm.start_servers = 2/pm.start_servers = 20/g' /usr/local/php5.6/etc/php-fpm.conf  sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' /usr/local/php5.6/etc/php-fpm.conf  sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' /usr/local/php5.6/etc/php-fpm.conf  else  echo "NONONO"
fi
if [ $? -eq 0 ]  then  systemctl start php-fpm && echo "PHP启动成功"  else  echo "启动PHP失败"
fi  #配置nginx解析php
if [ ! -d /usr/local/nginx/conf/nginx.conf ]  then  sed -i 's/index  index.html index.htm;/index  index.php index.html index.htm;/g' /usr/local/nginx/conf/nginx.conf  sed -i 's/#    root           html;/    root           html;/g' /usr/local/nginx/conf/nginx.conf  sed -i 's/#    fastcgi_pass   127.0.0.1:9000;/    fastcgi_pass   127.0.0.1:9000;/g' /usr/local/nginx/conf/nginx.conf  sed -i 's/#    fastcgi_index  index.php;/    fastcgi_index  index.php;/g' /usr/local/nginx/conf/nginx.conf  sed -i 's*#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;*    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;*g' /usr/local/nginx/conf/nginx.conf  sed -i 's/#    include        fastcgi_params;/    include        fastcgi.conf;/g' /usr/local/nginx/conf/nginx.conf  sed -i '71d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;70a}' /usr/local/nginx/conf/nginx.conf  sed -i '65d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;64alocation ~ \\.php$ {' /usr/local/nginx/conf/nginx.conf  else  echo "解析PHP失败!!!"
fi  touch /usr/local/nginx/html/yankerp.php
cat << EOF >/usr/local/nginx/html/yankerp.php
<?php
phpinfo();
?>
EOF  if [ ! -d /usr/local/nginx/html/yankerp.php ]  then  nginx -s reload && systemctl restart php-fpm  else  echo "测试目录文件失败"
fi
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  &> /dev/null && yum install -y sl &> /dev/null
sl
if [ $? -eq 0 ]  then  echo "LNMP安装成功,请您访问http://$ADDR/yankerp.php"  else  echo "安装失败"
fi  if [ $? -eq 0 ]  then  echo "LNMP安装成功,请您访问http://$ADDR/yankerp.php"  else  echo "安装失败"
fi
###################################################################################################This is a yankerp~ 

以上使用的过程都是一些if的判断,这样的练习能够熟练掌握shell的if语句的作用,以及对if语句有一些清晰的了解,希望读者能够自己也去写个shell脚本 尤其是刚接触if语句的朋友么,这样才能够提高自己的shell知识,同时也可以掌握shell之if语句的语法以及作用,如果完全可以看懂以上脚本的朋友么 那么恭喜你,你以及对if语句有一些认识了

    再见!

转载于:https://www.cnblogs.com/YankaiJY/p/8831115.html

Shell编程之if语法练习(LNMP)全过程相关推荐

  1. 详解Shell编程之if语句实战(小结)

    本篇文章主要介绍了详解Shell编程之if语句实战(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 对于if语句,其实很多人都肯定的听说过,那么if语句到底是什么, ...

  2. shell编程之case语句及函数

    shell编程之case语句 文章目录 shell编程之case语句 一.case语句 1. 语法结构 2. 应用案例 二.函数 1. 什么是函数? 2. 如何定义函数? 3. 函数如何调用? ㈠ 当 ...

  3. linux下简单的shellfor循环程序,对Linux下shell编程之for循环的实例讲解

    对Linux下shell编程之for循环的实例讲解 linux 下 for 循环中可以使用 break 和 continue 关键字来跳出循环, 和java 用法一致 一.常用for循环结构 #语法一 ...

  4. shell编程之 if 判断语句

    shell编程之 if 判断语句 判断语句介绍 - if 单if 语句(一个条件一个判断结果) if..else 语句(一个条件两个判断结果) if..elif..else 语句(多条件多个判断结果) ...

  5. 【shell编程之expr的使用】

    shell编程之expr的使用 语法格式 获取expr运算的结果 expr进行算数运算 expr进行字符串的处理 练习 expr是一个shell命令,可以使用man expr查看命令的帮助手册 语法格 ...

  6. linux dash 全局变量,Shell编程之shell基础

    一.shell介绍 1.编程语言分类 2.shell简介 3.shell脚本 1)什么是shell脚本? 2)什么时候用到脚本? 3)shell脚本能干啥? 4)shell脚本的基本写法 5)shel ...

  7. Shell编程之for循环

    for 循环 第一种写法: 1.基本语法(一) for (( 初始值;循环控制条件;变量变化 )) do 程序 done 2.案例 (1)计算1到100的和 第二种写法 基本语法(二) for 变量 ...

  8. shell编程之if判断总结

    最近常接触shell脚本,作为shell编程学习总结的第一篇,常用的if判断. 一.if的基本语法: if [ command ];then    符合该条件执行的语句 elif [ command ...

  9. shell编程之awk

    一.awk简介 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.可以在命令行中使用,但更多是作为脚本来使用. awk的 ...

最新文章

  1. QQ好友列表数据模型封装
  2. python3连接mysql数据库_python3.4连接mysql数据库
  3. ip设置 kali 重置_和我一起配置黑客系统kali,带你成为大牛,你真的准备好了吗?...
  4. 二维的完整形式是什么?
  5. 阮一峰:炫耀从来不是我的动机,好奇才是
  6. Nginx源码分析 - 主流程篇 - Nginx的启动流程(09)
  7. mysql列不明确_PHP和MYSQL:如何解决JOIN操作中不明确的列名?
  8. 无法远程连接 mysql(Ubuntu)
  9. springboot办公OA考勤请假系统java
  10. ShadowGun代码
  11. Bootstrap3 网页模板
  12. c语言斗兽棋源代码,智能斗兽棋-智能斗兽棋下载-医源世界
  13. 微分方程求通解推导-----专升本
  14. 【css太极图】html+css用一个div画出太极图
  15. 永磁同步电机力矩控制(九):定子磁场中的若干相关概念
  16. stl文件用proe怎么打开_3dMax怎么导入proe的文件渲染?3dmax导入stl文件过程
  17. 腾讯云通信WebIM事件回调的坑~
  18. 做好项目成本核算需要注意哪些事项
  19. MCU Alarm报警监测
  20. 射频标签技术特征的分类

热门文章

  1. python3(十二)打开和关闭文件
  2. 为什么银行大额存单没有4年期?想存4年期怎么办?
  3. 信用贷款额度是怎么确定的?
  4. WordPress的用户系统总结
  5. $unit编译单元声明
  6. 水晶报表10高级开发版下载及序列号
  7. java 验证码_Java - 验证码 - 由Kaptcha组件实现
  8. 将excel转为python的字典_python读取excel表并把数据转存为字典
  9. python正负数转换,如何在Python中将负整数值转换为十六进制
  10. vbs打开软件光标停在第一个输入框_三维设计软件,3DMAX最全快捷键大全,赶快收藏哦...