10 一键部署LNMP网站平台

#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

NGINX_V=1.19.1
PHP_V=7.2.19
TMP_DIR=/tmp
INSTALL_DIR=/usr/local
PWD_C=$PWD

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

if ! id nginx &> /dev/null; then
    groupadd -g 1200 nginx
    useradd -M -s /sbin/nologin -u 1200 -g nginx nginx &> /dev/null
fi

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 
    --user=nginx 
    --group=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/conf.d
    cp -a $PWD_C/nginx.conf $INSTALL_DIR/nginx/conf
    rm -rf $INSTALL_DIR/nginx/html/*
    echo "ok" > $INSTALL_DIR/nginx/html/status.html
    echo '<?php phpinfo(); ?>' > $INSTALL_DIR/nginx/html/status.php
    # $INSTALL_DIR/nginx/sbin/nginx
    cp -a $PWD_C/nginx.service /usr/lib/systemd/system
    systemctl daemon-reload
    systemctl enable nginx.service
    systemctl start nginx.service
    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-fpm-user=nginx 
    --with-fpm-group=nginx 
    --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 -a php.ini-production $INSTALL_DIR/php/etc/php.ini
    cp -a $INSTALL_DIR/php/etc/php-fpm.conf.default $INSTALL_DIR/php/etc/php-fpm.conf
    cp -a $INSTALL_DIR/php/etc/php-fpm.d/www.conf.default $INSTALL_DIR/php/etc/php-fpm.d/www.conf
    cp -a sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
    # /etc/init.d/php-fpm start
    cp -a $PWD_C/php.service /usr/lib/systemd/system
    systemctl daemon-reload
    systemctl enable php.service
    systemctl start php.service
    command_status_check "PHP - 启动失败!"
}

function install_mysql() {
    yum install mariadb-server -y
    command_status_check "mysql - 安装失败!"
    systemctl enable mariadb.service
    systemctl start mariadb.service
    command_status_check "mysql - 启动失败!"
}

read -p "请输入编号:" number
case $number in
    1)
        install_nginx;;
    2)
        install_php;;
    3)
        install_mysql;;
    4)
        install_mysql
        install_nginx
        install_php
        ;;
    9)
        exit;;
esac
原文地址:https://www.cnblogs.com/LiuChang-blog/p/14697948.html