LNMP脚本

#!/bin/bash
#########################################################
#by:chenhao                                             #
#use: fast lnmp                                         #
#version:1.0                                            #
#php:php-7.2.8                                          #
#nginx:1.15.1                                           #
#mysql:5.6.41                                           #
#cenos:2.6.32-754.2.1.el6.x86_64                        #        
#########################################################
dir=/root/opt
nginx_install_dir="/lnmp/nginx"
mysql_install_dir="/lnmp/mysql"
php_install_dir="/lnmp/php"
nginx_name="nginx-1.15.1.tar.gz"
mysql_name="mysql-5.6.41.tar.gz"
php_name="php-7.2.8.tar.gz"
[ -f /etc/init.d/functions ] && . /etc/init.d/functions || exit 1
#安装nginx
install_nginx(){
    #跟新源
  wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
  #安装依赖包
  yum install -y pcre pcre-devel openssl openssl-devel gcc make gcc-c++
  [ -e $dir ] && cd $dir
  if [ -f $nginx_name ]
    then
      echo 'nginx need have'
      # t解压文件
      tar zxf $nginx_name && cd nginx-1.15.1
      # 添加僵尸用户
      useradd nginx -s /sbin/nologin -M
      # 编译安装
      ./configure --user=nginx --group=nginx --prefix=/lnmp/nginx-1.15.1/ --with-http_stub_status_module --with-http_ssl_module
      [ $(echo $?) -eq 0 ] && make && make install
      [ $(echo $?) -eq 0 ] && echo "nginx install success...."    
        #创建软链接
        ln -s  /lnmp/nginx-1.15.1 /lnmp/nginx
  fi
}
#开启脚本
start_nginx(){
    service iptables stop
    setenforce 0 
    /lnmp/nginx/sbin/nginx -c  /lnmp/nginx-1.15.1//conf/nginx.conf
    $nginx_install_dir/sbin/nginx -t 
     if [ $(echo $?) -eq 0 ]
       then
         $nginx_install_dir/sbin/nginx -s reload
         if [ $(netstat -lutnp|grep 80|wc -l) -eq 1 ]
           then
             action "nginx success..."  /bin/true
         else
             echo "nginx error!"
         fi
     fi
    }
install_mysql(){
  yum install -y ncurses-devel automake autoconf bison libtool-ltdl-devel
  [ -e $dir ] && cd $dir
  if [ -f $mysql_name ]
    then
      yum install cmake -y
      tar zxvf $mysql_name
      if [ ! -d $mysql_install_dir ]
        then
          mkdir -p $mysql_install_dir
      fi
      groupadd mysql
      useradd -s /sbin/nologin -g mysql -M mysql
      mkdir -p /lnmp/mysql-5.6.41/data
      cd $dir/mysql-5.6.41
      cmake -DCMAKE_INSTALL_PREFIX=/lnmp/mysql-5.6.41 -DMYSQL_DATADIR=/lnmp/mysql-5.6.41/data -DMYSQL_UNIX_ADDR=/lnmp/mysql-5.6.41/tmp/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ZLIB=bundled -DWITH_SSL=bundled -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DENABLE_DOWNLOADS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 -DWITH_DEBUG=0      
      make && make install
      ln -s /lnmp/mysql-5.6.41/ /lnmp/mysql
      /lnmp/mysql-5.6.41/scripts/mysql_install_db --user=mysql --basedir=/lnmp/mysql-5.6.41 --datadir=/lnmp/mysql-5.6.41/data --user=mysql
      #授权
      chown -R mysql:mysql /lnmp/mysql-5.6.41/
      #创建目录,默认不会创建,但是启动会报错
      mkdir /lnmp/mysql/tmp
      [ $(echo $?) -eq 0 ] && \cp -f /lnmp/mysql-5.6.41/support-files/my*.cnf /etc/my.cnf
      cp /lnmp/mysql-5.6.41/support-files/mysql.server /etc/init.d/mysqld
      # 加权限
      chmod +x /etc/init.d/mysqld
    # 自启
      chkconfig --add mysqld
      chkconfig mysqld on
      # 加环境
      PATH=$PATH:/lnmp/mysql-5.6.41/bin/
      #添加环境
      echo "export PATH=$PATH:/lnmp/mysql/bin/" >>/etc/profile
      source /etc/profile
  fi   
}
#启动函数
start_mysql(){
      /etc/init.d/mysqld start   
      if [ $(netstat -lutnp|grep 3306|wc -l) -eq 1 ]
        then
          action "mysql success"  /bin/true
      else
          echo "mysql error!"
      fi
}

# 安装php
install_php(){
        yum install zlib-devel openssl-devel openssl libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel libmcrypt-devel mcrypt mhash -y
      [ -e $dir ] && cd $dir
      if [ -f $php_name ]
        then
          tar zxf $php_name  && cd php-7.2.8

          echo "Please witing loding................................................................"
       #编译安装
        ./configure --prefix=/lnmp/php7.2.8 --with-mysql=/lnmp/mysql --with-iconv-dir=/usr/local/libiconv  --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc  --enable-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp       
        [ $(echo $?) -eq 0 ] && ln -s /lnmp/mysql/lib/libmysqlclient.so.18 /usr/lib64/ && touch ext/phar/phar.phar
          make >> /dev/null 2>&1
          make install
           ln -s /lnmp/php7.2.8 /lnmp/php
             cp ./php.ini-production /lnmp/php/lib/php.ini
          cp /lnmp/php/etc/php-fpm.conf.default /lnmp/php/etc/php-fpm.conf
          cp /lnmp/php/etc/php-fpm.d/www.conf.default /lnmp/php/etc/php-fpm.d/www.conf
          cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm    
          #授予权限最好是700
          chmod +x /etc/init.d/php-fpm  
          PATH=$PATH:/lnmp/php/bin/
          echo "export PATH=$PATH:/lnmp/php/bin/" >>/etc/profile
          source /etc/profile
          chkconfig --add php-fpm
          chkconfig php-fpm  on
fi
}

# 启动函数
start_phpfpm(){
  /etc/init.d/php-fpm start
  if [ $(netstat -lutnp|grep 9000|wc -l) -eq 1 ]
    then
      action "php-fpm success" /bin/true
  else
      echo "php-fpm error"
  fi

}

main(){
   install_nginx
   sleep 3
   install_mysql
   sleep 3
   install_php
   start_nginx
   sleep 2
   start_mysql
   sleep 2
   start_phpfpm
}
main

  

posted @ 2023-07-06 07:40  雨夜清风  Views(11)  Comments(0Edit  收藏  举报