企業級-Shell案例10——一鍵部署LNMP網站平臺腳本

一鍵部署LNMP網站平臺腳本

網站瀏覽流程圖

L :Linux

N : Nginx

M :Mysql

P :PHP

user --> Nginx --> PHP --> Mysql

Centos軟件安裝

1、yum安裝

2、源碼編譯

  •       1)./configure
  •        2)make
  •        3)make install

3、二進制安裝

腳本編寫

#!/bin/bash
NGINX_V=1.15.6
PHP_V=5.6.36
TMP_DIR=/tmp

INSTALL_DIR=/usr/local

PWD_C=$PWD

echo
echo -e "\tMenu\n"
echo -e "1. Install Nginx"
echo -e "2. Install PHP"
echo -e "3. Install MySQL"
echo -e "4. Deploy LNMP"
echo -e "9. Quit"

function command_status_check() {
	if [ $? -ne 0 ]; then
		echo $1
		exit
	fi 
}

function install_nginx() {
    cd $TMP_DIR
    yum install -y gcc gcc-c++ make openssl-devel pcre-devel wget
    wget http://nginx.org/download/nginx-${NGINX_V}.tar.gz
    tar zxf nginx-${NGINX_V}.tar.gz
    cd nginx-${NGINX_V}
    ./configure --prefix=$INSTALL_DIR/nginx \
    --with-http_ssl_module \
    --with-http_stub_status_module \
    --with-stream
    command_status_check "Nginx - 平臺環境檢查失敗!"
    make -j 4 
    command_status_check "Nginx - 編譯失敗!"
    make install
    command_status_check "Nginx - 安裝失敗!"
    mkdir -p $INSTALL_DIR/nginx/conf/vhost
    alias cp=cp ; cp -rf $PWD_C/nginx.conf $INSTALL_DIR/nginx/conf
    rm -rf $INSTALL_DIR/nginx/html/*
    echo "ok" > $INSTALL_DIR/nginx/html/status.html
    echo '<?php echo "ok"?>' > $INSTALL_DIR/nginx/html/status.php
    $INSTALL_DIR/nginx/sbin/nginx
    command_status_check "Nginx - 啓動失敗!"
}

function install_php() {
	cd $TMP_DIR
    yum install -y gcc gcc-c++ make gd-devel libxml2-devel \
        libcurl-devel libjpeg-devel libpng-devel openssl-devel \
        libmcrypt-devel libxslt-devel libtidy-devel
    wget http://docs.php.net/distributions/php-${PHP_V}.tar.gz
    tar zxf php-${PHP_V}.tar.gz
    cd php-${PHP_V}
    ./configure --prefix=$INSTALL_DIR/php \
    --with-config-file-path=$INSTALL_DIR/php/etc \
    --enable-fpm --enable-opcache \
    --with-mysql --with-mysqli --with-pdo-mysql \
    --with-openssl --with-zlib --with-curl --with-gd \
    --with-jpeg-dir --with-png-dir --with-freetype-dir \
    --enable-mbstring --enable-hash
    command_status_check "PHP - 平臺環境檢查失敗!"
    make -j 4 
    command_status_check "PHP - 編譯失敗!"
    make install
    command_status_check "PHP - 安裝失敗!"
    cp php.ini-production $INSTALL_DIR/php/etc/php.ini
    cp sapi/fpm/php-fpm.conf $INSTALL_DIR/php/etc/php-fpm.conf
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
    /etc/init.d/php-fpm start
    command_status_check "PHP - 啓動失敗!"
}

read -p "請輸入編號:" number
case $number in
    1)
        install_nginx;;
    2)
        install_php;;
    3)
        install_mysql;;
    4)
        install_nginx
        install_php
        ;;
    9)
        exit;;
esac

測試截圖

相關博文:

 企業級-Shell案例1——服務器系統配置初始化

企業級-Shell案例2——發送告警郵件

企業級-Shell案例3——批量創建多個用戶並設置密碼

企業級-Shell案例4——一鍵查看服務器利用率

企業級-Shell案例5——找出佔用CPU 內存過高的進程

企業級-Shell案例6——查看網卡的實時流量

企業級-Shell案例7——監控多臺服務器磁盤利用率腳本

企業級-Shell案例8——批量檢測網站是否異常並郵件通知

企業級-Shell案例9——批量主機遠程執行命令腳本

企業級-Shell案例10——一鍵部署LNMP網站平臺腳本

企業級-Shell案例11——監控MySQL主從同步狀態是否異常腳本

企業級-Shell案例12——MySql數據庫備份腳本

企業級-Shell案例13——Nginx訪問日誌分析

企業級-Shell案例14——Nginx訪問日誌自動按天(周、月)切割

企業級-Shell案例15——自動發佈Java項目(Tomcat)

企業級-Shell案例16——自動發佈PHP項目

企業級-Shell案例17——DOS攻擊防範(自動屏蔽攻擊IP)

企業級-Shell案例18——目錄入侵檢測與告警

發佈了189 篇原創文章 · 獲贊 45 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章