zoukankan      html  css  js  c++  java
  • Shell编程之if语法练习(LNMP)全过程 Theletter

    大家好,我是延凯,本人原来在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.7echo "开始下载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语句有一些认识了

        再见!

  • 相关阅读:
    iOS开发——keychain的使用
    iOS开发——策略模式
    iOS开发——MVC模式
    iOS开发——代理模式
    ExtjsCode_Test02Panel.js
    网站收藏
    关于ExtJs Form表单的赋值、获取、重置
    ExtJS分页start,limit,pageSize的研究
    使Grid可编辑
    如何禁用Grid中的ToolBar中的Button
  • 原文地址:https://www.cnblogs.com/YankaiJY/p/8831115.html
Copyright © 2011-2022 走看看