• 使用shell安装lnmp


    1、简介

          使用shell脚本安装lnmp,纯粹是偷懒,平时安装一些东西都写成脚本了,方便以后在其他机器安装的时候不用再去查找文档。

      PHP版本5.6.6

      MYSQL版本5.6.26

      NGINX版本1.15.6

    2、环境说明

       阿里云ECS(1G1核)CentOS 7.4 64位

    3、shell脚本

    2.1   cnl_function.sh  
     1 #!/bin/bash
     2 #chennailuan's function
     3 
     4 
     5 #check last command id Ok or not.
     6 check_ok(){
     7     if [ $? != 0 ]
     8     then 
     9         echo Error,Check the error log.
    10         exit 1
    11     fi
    12 }
    13 
    14 #if the packge installed ,then omit
    15 myum(){
    16     if ! rpm -qa|grep -q "^$1"
    17     then 
    18         yum install -y $1
    19         check_ok
    20     else
    21         echo $1 already installed.
    22     fi
    23 }
    24 
    25 #check service is running or not ,example nginx ,httpd ,php-fpm
    26 check_service(){
    27     if [ $1 == "phpfpm" ]
    28     then
    29         s="php-fpm"
    30     else
    31         s=$1
    32       fi
    33     
    34     n=`ps aux | grep $s | wc -l`
    35     if [ $n -gt 1 ]
    36     then
    37         echo "$1 service is already started."
    38     else 
    39         if [ -f /etc/init.d/$1 ]
    40         then
    41             /etc/init.d/$1 start
    42             check_ok
    43         else
    44             install_$1
    45          fi
    46     fi
    47 }
    2.2   cnl_install_lnmp_init.sh  
     1 #!/bin/bash
     2 source ./cnl_function.sh
     3 
     4 echo "It will install lamp=========================================================================================begin"
     5 #sleep 2
     6 
     7 #get the archive of the system ,i686 or x86_64
     8 ar=`arch`
     9 
    10 #close selinux
    11 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    12 selinux_s=`getenforce`
    13 if [ $selinux_s == "enforcing" ]
    14 then 
    15     setenforce 0
    16 fi
    17 
    18 #install some packges
    19 for p in gcc wget perl perl-devel libaio libaio-devel pcre-devel zlib-devel autoconf openssl openssl-devel 
    20 do 
    21     myum $p
    22 done
    23 
    24 #install epel.
    25 if rpm -qa epel-release > /dev/null
    26 then 
    27     rpm -e epel-release
    28 fi
    29 if ls /etc/yum.repos.d/epel-7.repo* > /dev/null 2>&1
    30 then 
    31     rm -f /etc/yum.repos.d/epel-7.repo*
    32 fi
    33 wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
    2.3   cnl_install_lnmp.sh     
      1 #!/bin/bash
      2 source ./cnl_function.sh
      3 source ./cnl_install_lnmp_init.sh
      4 
      5 #function of installing mysqld
      6 install_mysqld(){
      7     cd /usr/local/src
      8     [ -f mysql-5.6.26-linux-glibc2.5-$ar.tar.gz ] || wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.26-linux-glibc2.5-$ar.tar.gz  
      9     check_ok
     10     tar -zxf mysql-5.6.26-linux-glibc2.5-$ar.tar.gz
     11     check_ok
     12     [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_`date +%s`
     13     mv mysql-5.6.26-linux-glibc2.5-$ar /usr/local/mysql
     14     check_ok
     15     if ! grep '^mysql:' /etc/passwd
     16     then
     17         useradd -M mysql -s /sbin/nologin
     18     fi
     19     myum compat-libstdc++-33
     20     check_ok
     21     [ -d /data/mysql ] && mv /data/mysql /data/mysql_`date +%s`
     22     mkdir -p /data/mysql
     23     chown -R mysql:mysql /data/mysql
     24     cd /usr/local/mysql
     25     ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
     26     check_ok
     27     cp support-files/my-default.cnf /etc/my.cnf
     28     check_ok
     29     sed -i '/^[mysqld]$/adatadir = /data/mysql' /etc/my.cnf
     30     cp support-files/mysql.server /etc/init.d/mysqld
     31     sed -i 's#^datadir=#datadir=/data/mysql#'   /etc/init.d/mysqld
     32     chmod 755 /etc/init.d/mysqld
     33     chkconfig --add mysqld
     34     chkconfig mysqld on
     35     service mysqld start
     36     check_ok
     37 }
     38 
     39 
     40 #function of install nginx
     41 install_nginx(){
     42     cd /usr/local/src
     43     [ -f nginx-1.15.6.tar.gz ] || wget http://nginx.org/download/nginx-1.15.6.tar.gz
     44     tar -zxf nginx-1.15.6.tar.gz
     45     cd nginx-1.15.6
     46     myum pcre-devel
     47     [ -d /usr/local/nginx ] && cp -R /usr/local/nginx /usr/local/nginx_`date +%s`
     48     check_ok
     49     ./configure 
     50     --prefix=/usr/local/nginx 
     51     --with-http_stub_status_module 
     52     --with-http_ssl_module 
     53     --with-ipv6 
     54     --with-http_v2_module 
     55     --with-poll_module 
     56     --with-http_realip_module 
     57     --with-http_sub_module 
     58     --with-http_gzip_static_module 
     59     --with-http_dav_module 
     60     --with-http_flv_module
     61     make && make install
     62     check_ok
     63     if [ -f /etc/init.d/nginx ]
     64     then
     65         mv /etc/init.d/nginx /etc/init.d/nginx_`date +%s`    
     66     fi
     67     curl https://cnlpublic.nl166.com/cnlfile/nginx/.nginx_init -o /etc/init.d/nginx
     68     check_ok
     69     chmod 755 /etc/init.d/nginx
     70     chkconfig --add nginx
     71     chkconfig nginx on
     72     curl https://cnlpublic.nl166.com/cnlfile/nginx/.nginx_conf -o /usr/local/nginx/conf/nginx.conf
     73     check_ok
     74     if ! grep -q '^www:' /etc/passwd
     75     then
     76         useradd -M -s /sbin/nologin www
     77     fi
     78 
     79     service nginx start
     80     check_ok
     81     echo -e "<?php  
     phpinfo(); 
     ?>" > /usr/local/nginx/html/index.php
     82     check_ok
     83 }
     84 
     85 
     86 #function of install php-fpm  version 5.6
     87 install_phpfpm(){
     88     cd /usr/local/src/
     89     [ -f php-5.6.6.tar.gz ] || wget http://mirrors.sohu.com/php/php-5.6.6.tar.gz    
     90     tar -zxf php-5.6.6.tar.gz && cd php-5.6.6
     91     for p in openssl-devel bzip2-devel 
     92     libxml2-devel curl-devel libpng-devel libjpeg-devel 
     93     freetype-devel libmcrypt-devel libtool-ltdl-devel perl-devel
     94     do
     95         myum $p
     96     done
     97 
     98     if ! grep -q '^www:' /etc/passwd
     99     then 
    100         useradd -M -s /sbin/nologin www
    101     fi
    102     check_ok
    103     ./configure 
    104     --prefix=/usr/local/php-fpm 
    105     --with-config-file-path=/usr/local/php-fpm/etc 
    106     --enable-fpm 
    107     --with-fpm-user=www 
    108     --with-fpm-group=www 
    109     --with-mysql=/usr/local/mysql 
    110     --with-mysql-sock=/tmp/mysql.sock 
    111     --with-pdo-mysql 
    112     --with-pdo-sqlite 
    113     --with-libxml-dir 
    114     --with-gd 
    115     --with-gettext 
    116     --with-jpeg-dir 
    117     --with-png-dir 
    118     --with-freetype-dir 
    119     --with-iconv-div 
    120     --with-zlib-dir 
    121     --with-mcrypt 
    122     --enable-soap 
    123     --enable-gd-native-ttf 
    124     --enable-ftp 
    125     --enable-mbstring 
    126     --enable-exif 
    127     --enable-sockets 
    128     --disable-ipv6 
    129     --with-pear 
    130     --with-curl 
    131     --with-mysqli 
    132     --with-openssl 
    133     check_ok    
    134     make && make install
    135     check_ok
    136     [ -f /usr/local/php-fpm/etc/php.ini ] || cp php.ini-production /usr/local/php-fpm/etc/php.ini
    137     if /usr/local/php-fpm/bin/php -i || grep -iq 'date.timezone => no value'
    138     then 
    139         sed -i '/;date.timezone =$/adate.timezone = "PRC"' /usr/local/php-fpm/etc/php.ini
    140         check_ok
    141     fi
    142     [ -f /usr/local/php-fpm/etc/php-fpm.conf ] || curl https://cnlpublic.nl166.com/cnlfile/php/.phpfpm_conf -o /usr/local/php-fpm/etc/php-fpm.conf
    143     [ -f /etc/init.d/phpfpm ] || cp sapi/fpm/init.d.php-fpm /etc/init.d/phpfpm
    144 
    145     chmod 755 /etc/init.d/phpfpm
    146     chkconfig phpfpm on
    147     ln -s /usr/local/php-fpm/bin/php /usr/local/bin/php
    148     service phpfpm start
    149     check_ok
    150     
    151 
    152 }
    153 
    154 #function of install lnmp
    155 lnmp(){
    156     check_service mysqld
    157     check_service nginx
    158     check_service phpfpm
    159     echo "The lnmp done,Please use 'http://your ip/index.php' to access"
    160 }
    161 
    162 
    163 read -p "Initialization completion, Enter  (Y) to start installation LNMP :" n
    164 if [ $n == 'Y' ]
    165 then 
    166     echo "Start installation==============================================================================================================================>"
    167     lnmp
    168 else
    169     echo "Cancel the installation."
    170 fi

     4、开始安装

      上面上个文件放在同一目录

      

      在shell目录执行 sh cnl_install_lnmp.sh

      

      输入 Y 确认执行安装,需要安装的安装包会自己检查,本人在自己的几台服务器都测试过,安装正常。

      安装完会自己加到系统服务 ,并启动。

      

      

    写的文章仅供自己参考,仅供自己参考,仅供自己参考,免得太久没有使用忘记了。
  • 相关阅读:
    电脑磁盘分区助手:DiskGenius磁盘管理与数据恢复软件
    python安装第三方的包
    教你成为全栈工程师(Full Stack Developer) 四十五-一文读懂hadoop、hbase、hive、spark分布式系统架构
    北半球 自己动手做聊天机器人
    [08] 请求、会话、上下文属性比较
    [07] ServletContext上下文对象
    [06] Session实现机制以及和Cookie的区别
    [05] Session概要
    [04] Cookie概念和基本使用
    [03] Servlet继承关系和生命周期
  • 原文地址:https://www.cnblogs.com/chennl/p/10112641.html
Copyright © 2020-2023  润新知