设为首页 收藏本站
查看: 2090|回复: 0

wdcp的环境搭建shell脚本分析--lanmp.sh

[复制链接]

尚未签到

发表于 2018-8-29 08:56:25 | 显示全部楼层 |阅读模式
#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.1
  
read -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
  
    exit
  
fi
  

  
#根据read返回的结果,判断安装的PHP版本
  

  
echo "Select php version:
  
    1 php-5.2.17 (default)
  
    2 php-5.3.29
  
"
  
sleep 0.1
  
read -p "Please Input 1,2: " PHP_VER_ID
  
if [[ $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.8
  
nameserver 202.96.128.68" > /etc/resolv.conf
  
    echo "dns err"
  
fi
  
ping -c 1 -t 1 www.wdlinux.cn >/dev/null 2>&1
  

  
#根据PING的结果,判断是否到官网畅通,不通则报错
  
if [[ $? == 2 ]]; then
  
    echo "dns err"
  
    exit
  
fi
  

  
#根据$OS_RL变量的值,判断操作系统是否为centos 或 redhat ,并配置yum.conf
  
if [ $OS_RL == 1 ]; then
  
    sed -i 's/^exclude=/#exclude=/g' /etc/yum.conf
  
fi
  

  
#根据变量结果,不同的操作系统,安装初始的准备工作不同
  
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/
  
    fi
  
else
  
    #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/localtime
  
fi
  

  
#校验时间
  

  
ntpdate tiger.sina.com.cn
  
hwclock -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>&1
  
fi
  

  

  
#下载安装程序
  

  
#wget_down 是个下载函数,前面已经定义
  

  
cd $IN_SRC
  

  
[ $IN_DIR = "/www/wdlinux" ] || IN_DIR_ME=1
  

  
if [ $SERVER == "apache" ]; then
  
    wget_down $HTTPD_DU
  
elif [ $SERVER == "nginx" ]; then
  
    wget_down $NGINX_DU $PHP_FPM $PCRE_DU
  
fi
  
if [ $X86 == "1" ]; then
  
    wget_down $ZENDX86_DU
  
else
  
    wget_down $ZEND_DU
  
fi
  
wget_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_ins
  
if [ $SERVER == "all" ]; then
  
    in_all
  
else
  
    ${SERVER}_ins
  
    php_ins
  
    eaccelerator_ins
  
    zend_ins
  
fi
  
pureftpd_ins
  
start_srv
  
lanmp_in_finsh



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-557963-1-1.html 上篇帖子: shell中遍历目录 下篇帖子: shell创建函数和引用函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表