自动安装lnmp

#!/bin/bash
#auto install LANMP
#by author ale 
#2019-4-30 20:39:04
#Httpd define path variable
H_FILES=httpd-2.4.38.tar.gz
H_FILES_DIR=httpd-2.4.38
H_URL=http://mirrors.cnnic.cn/apache/httpd/
H_PREFIX=/usr/local/apache


#MysqL define path variable
M_FILES=MysqL-5.5.20.tar.gz
M_FILES_DIR=MysqL-5.5.20
M_PREFIX=/usr/local/MysqL
M_YUM="cmake  ncurses-devel ncurses pcre pcre-devel"

#PHP define path variable
P_FILES=PHP-5.6.10.tar.gz
P_FILES_DIR=PHP-5.6.10
P_URL=http://ftp.ntu.edu.tw/PHP/distributions/
P_PREFIX=/usr/local/PHP
P_YUM="gd   curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel"

#Nginx define path variable
N_FILES=Nginx-1.12.2.tar.gz
N_FILES_DIR=Nginx-1.12.2
N_URL=http://Nginx.org/download/
N_PREFIX=/usr/local/Nginx
N_YUM="openssl openssl-devel"

print_menu(){
    echo -e "\033[32mPlease Select Install Menu follow:\033[0m"
    echo -e "\033[32m1)编译安装Apache服务\033[0m"
    echo -e "\033[32m2)编译安装Nginx服务\033[0m"
    echo -e "\033[32m3)编译安装MysqL服务\033[0m"
    echo -e "\033[32m4)编译安装PHP服务\033[0m"
    echo -e "\033[32m5)配置index.PHP并启动LAMP服务\033[0m"
    echo -e "\033[32m6)整合LNMP\033[0m"
    exit 
}

apache_install(){
#Install httpd web server
if [[ "$1" -eq "1" ]];then
    wget -c $H_URL/$H_FILES;tar -xzf $H_FILES;cd $H_FILES_DIR;./configure --prefix=$H_PREFIX --enable-so --enable-cgi --enable-rewrite --enable-module=most --enable-mpms-shared=all 
    if [ $? -eq  0 ];then
        make &&make install
        cp $H_PREFIX/bin/apachectl /etc/init.d/httpd
        chmod o+x /etc/init.d/httpd
    fi
fi
}

Nginx_install(){
#Install Nginx web server
if [[ "$1" -eq "2" ]];then
        yum install -y $N_YUM
        wget -c $N_URL/$N_FILES;tar -xzf $N_FILES;cd $N_FILES_DIR;useradd www;./configure --prefix=$N_PREFIX --user=www --group=w
ww --with-http_stub_status_module --with-http_ssl_module
        make && make install
fi
}


MysqL_install(){
#Install MysqL server
if [[ "$1" == "3" ]];then
    yum install -y $M_YUM
    tar -xf $M_FILES;cd $M_FILES_DIR;cmake  . -DCMAKE_INSTALL_PREFIX=$M_PREFIX \
-DMysqL_UNIX_ADDR=/tmp/MysqL.sock \
-DMysqL_DATADIR=/data/MysqL \
-DSYSconfdIR=/etc \
-DMysqL_USER=MysqL \
-DMysqL_TCP_PORT=3306 \
-DWITH_XTradB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
make -j4 && make install -j4
cp support-files/my-small.cnf  /etc/my.cnf
cp support-files/MysqL.server /etc/init.d/MysqLd
useradd MysqL;$M_PREFIX/scripts/MysqL_install_db --basedir=$M_PREFIX --datadir=/data/MysqL --user=MysqL
chmod +x /etc/init.d/MysqLd
chkconfig --add MysqLd
fi
}


PHP_install(){
#Install PHP server
if [[ "$1" -eq "4" ]];then
    yum -y install $P_YUM
    wget -c $P_URL/$P_FILES;tar -xzf $P_FILES;cd $P_FILES_DIR;./configure --prefix=$P_PREFIX --enable-fpm  --with-pdo-MysqL  --enable-debug --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir   --enable-mbstring --with-curl   --with-MysqL=$M_PREFIX  --with-config-file-path=$P_PREFIX/etc --with-apxs2=$H_PREFIX/bin/apxs     
    if [ $? -eq 0 ];then
        make -j4 && make install -j4
        cp PHP.ini-development $P_PREFIX/etc/PHP.ini
        cp  $P_PREFIX/etc/PHP-fpm.conf.default  $P_PREFIX/etc/PHP-fpm.conf
        $M_PREFIX/sbin/PHP-fpm 
        cp sapi/fpm/init.d.PHP-fpm /etc/init.d/PHP-fpm
        chmod o+x /etc/init.d/PHP-fpm
        echo -e "\033[32mThe PHP Server Install Success\033[0m"
    else
        echo -e "\033[32mThe PHP Server Install Failed,Please check..\033[0m"
    fi
fi
}
    
lamp_config(){
if [[ "$1" = "5" ]];then
    sed -i '/DirectoryIndex/s/index.html/index.PHP index.html/g' $H_PREFIX/conf/httpd.conf 
    $H_PREFIX/bin/apachectl restart    
    echo "AddType     application/x-httpd-PHP .PHP" >>$H_PREFIX/conf/httpd.conf
    IP=`ifconfig ens33|grep "broadcast"|awk '{print $2}'|cut -d: -f2`
    echo "You can access http://$IP/"
    cat >$H_PREFIX/htdocs/index.PHP <<EOF
    <?PHP
    PHPinfo();
    ?>
EOF
fi
}

lnmp_config(){
if [[ "$1" = "6" ]];then
    \cp Nginx.conf.swp $N_PREFIX/conf/Nginx.conf 
    cat >$N_PREFIX/html/index.PHP <<EOF
        <?PHP
        PHPinfo();
        ?>
EOF
    $N_PREFIX/sbin/Nginx
    /etc/init.d/PHP-fpm restart
    /etc/init.d/MysqLd restart
    systemctl stop firewalld
    setenforce 0
fi
}

case $1 in

    1)
        apache_install $1
    ;;
    2)
        Nginx_install $1
    ;;
    3)
        MysqL_install $1
    ;;
    4)
        PHP_install $1
    ;;
    5)
        lamp_config $1
    ;;
    6)
        lnmp_config $1
    ;;
    *)
        print_menu
    ;;
esac
Nginx.conf.swp 内容以下
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
         location  ~ \.PHP$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.PHP;
            fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

相关文章

本篇内容介绍了“LNMP服务器环境配置实例分析”的有关知识,...
本篇内容主要讲解“OneinStack如何一键安装LNMP”,感兴趣的...
小编给大家分享一下如何解决LNMP安装composer install时出现...
1.源码安装mysql鉴于前边的文章已经详细说过mysql的源码安装...
Linux是非常热门的技术,也是当下非常受欢迎的操作系统,具有...
██【電:131.乀.1418.乀.6667】【薇q:9788....