zoukankan      html  css  js  c++  java
  • LAMP源码编译安装脚本

    #!/bin/bash                     #
    #auto make install LAMP         # 
    #by author LingShu 2018-04-25   #
    #################################

    #test network
    #ping -c 4 www.baidu.com  &>/dev/null
    #if [ $? -ne 0 ];then
    #   echo -c "33[32mplease check network configuration...33[0m"
    #   exit
    #fi

    #define httpd dir path && variable
    H_FILES=httpd-2.2.27.tar.gz
    H_FILES_DIR=httpd-2.2.27
    H_DOWNLOAD_URL=http://archive.apache.org/dist/httpd/httpd-2.2.27.tar.gz
    H_PREFIX=/usr/local/apache/
    H_CONF=/usr/local/apache/conf/httpd.conf
    H_SERVER=/usr/local/apache/bin/apachectl


    #define mysql dir path && variable
    M_FILES=mysql-5.7.13.tar.gz
    M_boost=boost_1_59_0.tar.gz
    M_FILES_DIR=mysql-5.7.13
    M_boost_dir=/document/boost_1_59_0
    M_DOWNLOAD_URL=https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.13.tar.gz
    M_boost_url=https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
    M_PREFIX=/usr/local/mysql/
    M_DATA=/date/mydata

    #define initialise mysqld parameter
    M_CONF=/etc/my.cnf
    M_INIT_SH=/usr/local/mysql/bin/mysqld
    M_START_SH=/usr/local/mysql/support-files/mysql.server
    M_INIT_FILE=/usr/local/mysql/init.txt
    M_LOG_DIR=/var/log/mysql
    M_PID_DIR=/var/run/mysql
    M_LOG=log-error=/var/log/mysql/mysql.log
    M_PID=pid-file=/var/run/mysql/mysql.pid
    M_LOGIN=/usr/local/mysql/bin/mysql

    #define php dir path && variable
    P_FILES=php-5.3.28.tar.gz
    P_FILES_DIR=php-5.3.28
    P_DOWNLOAD_URL=http://mirrors.sohu.com/php/php-5.3.28.tar.gz
    P_PREFIX=/usr/local/php5/
    P_CONFIG_FILE=/usr/local/php5/etc/
    P_APXS2=/usr/local/apache/bin/apxs
    P_DB=/usr/local/mysql/
    P_INDEX=/usr/local/apache/htdocs/index.php

    #install compiler for LAMP
    function lamp_compiler()
    {
        yum install gcc gcc-c++ apr apr-util apr-devel apr-util-devel make cmake ncurses-devel openssl openssl-devel bison* libxml2 libxml2-devel
    }


    #install apache function
    function install_apache ()
    {   wget -c $H_DOWNLOAD_URL && tar -xzf $H_FILES && cd $H_FILES_DIR ; ./configure --prefix=$H_PREFIX
        if [ $? -eq 0 ];then
            make && make install
            echo -e "33[32m the apache install successfully !33[0m"
        else
            echo -e "33[32m the apache install failed !!! please check...33[0m"
            exit
        fi
    $H_SERVER restart
    }


    #install mysql function
    function install_mysql()
    {
        mkdir /document
        wget -c $M_DOWNLOAD_URL;wget -c $M_boost_url && tar -zxf $M_boost -C /document && tar -zxf $M_FILES && cd $M_FILES_DIR

        cmake . -DCMAKE_PREFIX=$M_PREFIX
    -DMYSQL_DATADIR=$M_DATA
    -DSYSCONFDIR=/etc
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_READLINE=1
    -DWITH_LIBWRAP=0
    -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock
    -DWITH_SSL=system
    -DWITH_ZLIB=system
    -DWITH_BOOST=$M_boost_dir
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
     
        if [ $? -eq 0 ];then
            make && make install
            echo -e "33[32m the mysql install successfully !33[0m"
        else
            echo -e "33[32m the apache install failed !!! please check...33[0m"
            exit
        fi
    }

    #mysql initialise configure
    function init_mysql()
    {

    cat $M_CONF | egrep 'mariadb.log|mariadb.pid' &> /dev/null
        if [ $? -eq 0 ]
        then
                sed -i 's/mariadb/mysql/g' $M_CONF
        fi

    grep "^[mysqld_safe]$" /etc/my.cnf
        if [ $? -ne 0 ]
        then
                sed -i "/!includedir/i [mysqld_safe]" $M_CONF
        fi

    grep "^$M_LOG$" /etc/my.cnf
        if [ $? -ne 0 ]
        then
                sed -i "/mysqld_safe/a $M_LOG" $M_CONF
        fi

    grep "^$M_PID$" /etc/my.cnf
        if [ $? -ne 0 ]
        then
                sed -i "/mysqld_safe/a $M_PID" $M_CONF
        fi

    if [[ ! -d $M_LOG_DIR ]] && [[ ! -d $M_PID_DIR ]]
    then
            mkdir $M_LOG_DIR $M_PID_DIR
    fi

    chown -R mysql:mysql $M_LOG_DIR $M_PID_DIR

    $M_INIT_SH --initialize --user=mysql &> $M_INIT_FILE

    M_PASSWD=`cat $M_INIT_FILE |grep 'root@localhost'|awk -F:  '{print $NF}'`
    $M_START_SH start
        if [ $? -eq 0 ]
        then
            echo -e  "33[32m mysqld server start success 33[0m"
        fi
    #$M_LOGIN -uroot -p$M_PASSWD

    }



    #install php function
    function install_php()
    {
        wget -c $P_DOWNLOAD_URL && tar -xzf $P_FILES && cd $P_FILES_DIR
        ./configure --prefix=$P_PREFIX --with-config-file-path=$P_CONFIG_FILE --with-apxs2=$P_APXS2 --with-mysql=$P_DB
        if [ $? -eq 0 ]
        then
            make && make install
            echo -e "33[32m the php install successfully !33[0m"
        else
            echo -e "33[32m the php install failed !!! please check...33[0m"
            exit
        fi

        if [ ! -f $H_CONF ]
        then
            echo "please check apache server "
            exit
        fi

    cat $H_CONF | grep modules/libphp5.so &> /dev/null
        if [ $? -ne 0 ]
        then
            sed -i '/mpm_netware_module/i LoadModule php5_module  modules/libphp5.so' $H_CONF
            echo -e "33[32m Module addition success 33[0m"
        else
            echo -e "33[32m The php5 module has already existed 33[0m"
        fi

    cat $H_CONF | grep index.php  &>  /dev/null
            if [ $? -ne 0 ]
            then
                    sed -i 's/index.html/index.php index.html/g'  $H_CONF
            echo -e "33[32m Home page modification success 33[0m"
        else
            echo -e "33[32m The home page has been modified 33[0m"
            fi

    cat $H_CONF | grep 'AddType application/x-httpd-php .php'  &>  /dev/null
            if [ $? -ne 0 ]
            then
            sed -i '/mime_module/a AddType application/x-httpd-php .php'  $H_CONF
            echo -e "33[32m add parsing '*.php' success 33[0m"
        else
            echo -e "33[32m Parse has been added for *.php 33[0m"
            fi

        if [ ! -f $P_INDEX ]
        then
            echo "
                <?php
                    phpinfo();
                ?>
            " > $P_INDEX
            echo -e "33[32m Test page creation success 33[0m"
        else
            echo -e "33[32m please create test page 33[0m"
        fi
    $H_SERVER restart
    }


    echo -e "33[32m"

    PS3=" please select ,Do you want install package of software:"
    select i in install_compiler install_apache install_mysql install_php install_all exit_install
    do
        case $i in
            install_compiler)
            lamp_compiler
            ;;
            install_apache)
            install_apache
            ;;
            install_mysql)
            install_mysql && init_mysql
            ;;
            install_php)
            install_php
            ;;
            install_all)
            lamp_compiler && install_apache && install_mysql && init_mysql && install_php
            ;;
            exit_install)
            echo -e "Exin in...33[0m"
            exit
            ;;
            *)
            echo -e "33[32m please select {1:install compiler|2:install apache|3:install mysql|4:install php |5:install all |6:exit}33[0m"
        esac
    done
     

  • 相关阅读:
    POJ2395 Out of Hay
    POJ2421 Constructing Roads
    POJ2031 Building a Space Station
    POJ1751 Highways
    [NOIP2007] 提高组 洛谷P1099 树网的核
    [NOIP2007] 提高组 洛谷P1005 矩阵取数游戏
    [NOIP2007] 提高组 洛谷P1097 统计数字
    [NOIP2007] 提高组 洛谷P1098 字符串的展开
    [NOIP2007] 普及组
    洛谷 通天系列 P1760 P1757 P1759
  • 原文地址:https://www.cnblogs.com/lingshu/p/9154107.html
Copyright © 2011-2022 走看看