wdcp的環境搭建shell指令碼分析--lanmp.sh

來源:互聯網
上載者:User

標籤:shell

#lanmp環境配置的主要檔案. lib/common.conf. lib/common.sh. lib/mysql.sh. lib/apache.sh. lib/nginx.sh. lib/php.sh. lib/na.sh. lib/libiconv.sh. lib/eaccelerator.sh. lib/zend.sh. lib/pureftp.sh. lib/pcre.sh. lib/webconf.sh. lib/service.sh#以上都是引用函數檔案,基本是各個模組的安裝函數,已經分析了幾個,格式大概相同,基本是命令的羅列。# 判斷安裝包路徑是否存在,以及日誌路徑是否存在,不存在則建立[ -d $IN_SRC ] || mkdir $IN_SRC[ -d $LOGPATH ] || mkdir $LOGPATH#判斷需要安裝的服務模組###          echo "Select Install    1 apache + php + mysql + zend + eAccelerator + pureftpd + phpmyadmin    2 nginx + php + mysql + zend + eAccelerator + pureftpd + phpmyadmin    3 nginx + apache + php + mysql + zend + eAccelerator + pureftpd + phpmyadmin    4 install all service    5 don‘t install is now"sleep 0.1read -p "Please Input 1,2,3,4,5: " SERVER_ID#根據read返回的結果進行選擇,不同的數字對應不同的安裝模組if [[ $SERVER_ID == 2 ]]; then    SERVER="nginx"elif [[ $SERVER_ID == 1 ]]; then    SERVER="apache"elif [[ $SERVER_ID == 3 ]]; then    SERVER="na"elif [[ $SERVER_ID == 4 ]]; then    SERVER="all"else    exitfi#根據read返回的結果,判斷安裝的PHP版本echo "Select php version:    1 php-5.2.17 (default)    2 php-5.3.29"sleep 0.1read -p "Please Input 1,2: " PHP_VER_IDif [[ $PHP_VER_ID == 2 ]]; then    PHP_VER="5.3.29"else    PHP_VER="5.2.17"fi#判斷網路情況ping -c 1 -t 1 www.wdlinux.cn >/dev/null 2>&1#根據PING返回的狀態判斷網路是否暢通,不暢通的情況下,添加DNS地址if [[ $? == 2 ]]; then    echo "nameserver 8.8.8.8nameserver 202.96.128.68" > /etc/resolv.conf    echo "dns err"fiping -c 1 -t 1 www.wdlinux.cn >/dev/null 2>&1#根據PING的結果,判斷是否到官網暢通,不通則報錯if [[ $? == 2 ]]; then    echo "dns err"    exitfi#根據$OS_RL變數的值,判斷作業系統是否為centos 或 redhat ,並配置yum.conf if [ $OS_RL == 1 ]; then    sed -i ‘s/^exclude=/#exclude=/g‘ /etc/yum.conffi#根據變數結果,不同的作業系統,安裝初始的準備工作不同 if [ $OS_RL == 2 ]; then    #ubuntu系列的作業系統,準備安裝的一些包。    service apache2 stop 2>/dev/null    service mysql stop 2>/dev/null    service pure-ftpd stop 2>/dev/null    apt-get update    apt-get remove -y apache2 apache2-utils apache2.2-common apache2.2-bin         apache2-mpm-prefork apache2-doc apache2-mpm-worker mysql-common         mysql-client mysql-server php5 php5-fpm pure-ftpd pure-ftpd-common         pure-ftpd-mysql 2>/dev/null    apt-get -y autoremove    [ -f /etc/mysql/my.cnf ] && mv /etc/mysql/my.cnf /etc/mysql/my.cnf.lanmpsave    apt-get install -y gcc g++ make autoconf libltdl-dev libgd2-xpm-dev         libfreetype6 libfreetype6-dev libxml2-dev libjpeg-dev libpng12-dev         libcurl4-openssl-dev libssl-dev patch libmcrypt-dev libmhash-dev         libncurses5-dev  libreadline-dev bzip2 libcap-dev ntpdate         diffutils exim4 iptables unzip sudo    if [ $X86 == 1 ]; then        ln -sf /usr/lib/x86_64-linux-gnu/libpng* /usr/lib/        ln -sf /usr/lib/x86_64-linux-gnu/libjpeg* /usr/lib/    else        ln -sf /usr/lib/i386-linux-gnu/libpng* /usr/lib/        ln -sf /usr/lib/i386-linux-gnu/libjpeg* /usr/lib/    fielse    #centos 系列的。    rpm --import lanmp/RPM-GPG-KEY.dag.txt    [ $R6 == 1 ] && el="el6" || el="el5"    rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.$el.rf.$(uname -m).rpm    yum install -y gcc gcc-c++ make sudo autoconf libtool-ltdl-devel gd-devel         freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel         curl-devel patch libmcrypt-devel libmhash-devel ncurses-devel bzip2         libcap-devel ntp sysklogd diffutils sendmail iptables unzip    if [ $X86 == 1 ]; then        ln -sf /usr/lib64/libjpeg.so /usr/lib/        ln -sf /usr/lib64/libpng.so /usr/lib/    fi    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimefi#校正時間ntpdate tiger.sina.com.cnhwclock -w#判斷自訂的安裝檔案目錄是否存在,不存在,重建立立if [ ! -d $IN_DIR ]; then    mkdir -p $IN_DIR/{etc,init.d,wdcp_bk/conf}    mkdir -p /www/web        #根據OS_RL的值,進行作業系統判斷,做不同的服務處理。    if [ $OS_RL == 2 ]; then        /etc/init.d/apparmor stop >/dev/null 2>&1        update-rc.d -f apparmor remove >/dev/null 2>&1        apt-get remove -y apparmor apparmor-utils >/dev/null 2>&1        ogroup=$(awk -F‘:‘ ‘/x:1000:/ {print $1}‘ /etc/group)        [ -n "$ogroup" ] && groupmod -g 1010 $ogroup >/dev/null 2>&1        ouser=$(awk -F‘:‘ ‘/x:1000:/ {print $1}‘ /etc/passwd)        [ -n "$ouser" ] && usermod -u 1010 -g 1010 $ouser >/dev/null 2>&1        adduser --system --group --home /nonexistent --no-create-home mysql >/dev/null 2>&1    else        setenforce 0        sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config        service httpd stop >/dev/null 2>&1        service mysqld stop >/dev/null 2>&1        chkconfig --level 35 httpd off >/dev/null 2>&1        chkconfig --level 35 mysqld off >/dev/null 2>&1        chkconfig --level 35 sendmail off >/dev/null 2>&1        groupadd -g 27 mysql >/dev/null 2>&1        useradd -g 27 -u 27 -d /dev/null -s /sbin/nologin mysql >/dev/null 2>&1    fi    groupadd -g 1000 www >/dev/null 2>&1    useradd -g 1000 -u 1000 -d /dev/null -s /sbin/nologin www >/dev/null 2>&1fi#下載安裝程式#wget_down 是個下載函數,前面已經定義cd $IN_SRC[ $IN_DIR = "/www/wdlinux" ] || IN_DIR_ME=1if [ $SERVER == "apache" ]; then    wget_down $HTTPD_DUelif [ $SERVER == "nginx" ]; then    wget_down $NGINX_DU $PHP_FPM $PCRE_DUfiif [ $X86 == "1" ]; then    wget_down $ZENDX86_DUelse    wget_down $ZEND_DUfiwget_down $MYSQL_DU $PHP_DU $EACCELERATOR_DU $VSFTPD_DU $PHPMYADMIN_DU#定義執行初始化的函數function in_all {    na_ins    SERVER="nginx"; php_ins    eaccelerator_ins    zend_ins    rm -f $php_inf $eac_inf $zend_inf    SERVER="apache"; php_ins    eaccelerator_ins    zend_ins}#其他服務的初始化mysql_insif [ $SERVER == "all" ]; then    in_allelse    ${SERVER}_ins    php_ins    eaccelerator_ins    zend_insfipureftpd_insstart_srvlanmp_in_finsh


wdcp的環境搭建shell指令碼分析--lanmp.sh

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.