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

#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
时间: 2024-10-16 22:10:34

wdcp的环境搭建shell脚本分析--lanmp.sh的相关文章

wdcp的环境搭建shell脚本分析--lanmp.sh---lib/common.conf

#分析文件lanmp.sh,在其头部引入了一系列的函数文件 . 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

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

#common.sh,里面主要是一些函数 #执行编译后的清理工作 function make_clean {     #$RE_INS 根据变量的值,来判断是否执行清理工作     if [ $RE_INS == 1 ]; then         make clean >/dev/null 2>&1     fi } #下载函数 function wget_down {     #判断$SOFT_DOWN的值,如果为1,执行下载     if [ $SOFT_DOWN == 1 ];

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

#apache安装函数 function apache_ins {         #定义日志变量为局部变量     local IN_LOG=$LOGPATH/${logpre}_apache_install.log     echo     #httpd_inf="/tmp/httpd_ins.txt"     [ -f $httpd_inf ] && return     #开始编译apache     echo "installing httpd...

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

#!/bin/bash ### #定义screen的名字,下面安装会用screen这个命令 SCREEN_NAME="lanmp" #根据$UID判断用户是否为root,必须root才能执行 if [ $UID != 0 ]; then     echo "You must be root to run the install script."     exit fi #根据命令行参数判断,参数为un或者uninstall时,停止服务,删除文件,卸载掉整个WDCP服

shell脚本分析apache日志状态码

一.首先将apache日志按天切割 vi /etc/httpd/conf/httpd.confErrorLog "|rotatelogs /var/log/httpd/%Y%m%derror_log 86400 480″CustomLog "|rotatelogs /var/log/httpd/%Y%m%daccess_log 86400 480″ combined 二.重启apache服 service httpd restart ##################apahce日志

eclipse下搭建shell脚本编辑器--安装开发shell的eclipse插件shelled

eclipse下搭建shell脚本编辑器--安装开发shell的eclipse插件shelled 1.安装"man-page viewer"插件(ShellEd需要,有的机器不需要,先装上) 安装地址:http://download.eclipse.org/technology/linuxtools/updates-nightly/ 2.安装"shelled"插件 在http://sourceforge.net/projects/shelled/files/late

Hadoop的shell脚本分析

你会发现hadoop-daemon.sh用于启动单独的本机节点 而hadoop-daemons.sh 会批量的ssh到别的机器启动 前记: 这些天一直学习hadoop,学习中也遇到了许多的问题,主要是对hadoop的shell脚本和hadoop的源码概念不够清楚,所以我就对hadoop的bin目录下的shell脚本进行了研究,有一些成果想记录下来,也希望大家前来批评指正. 分析原因: 很多hadoop的初学者对hadoop的脚本不是很清楚,不知道为什么可以在命令行中启动hadoop,也不知道为什

使用 shell 脚本实现 LANMP 一键安装

使用 shell 脚本来实现 LANMP 系统的一键安装.使用的操作系统是 CentOS 6 ,不区分 32 位和 64 位,要求机器可以连通互联网.支持 LAMP 和 LNMP ,MySQL 支持 5.1 和 5.6 两个版本, php 支持 5.3 和 5.6 两个版本, apache 2.2 ,nginx 1.8. 代码如下: #!/bin/bash echo "It will install lamp or lnmp." sleep 1 # get the archive of

HTML5 移动应用开发环境搭建及原理分析

开发环境搭建: 一.Android 开发平台搭建 安装java jdk:\\10.194.151.132\Mewfile\tmp\ADT 配置java jdk 1)  新建系统变量,JAVA_HOME,C:\Program Files\Java\jdk1.8.0_25 2)  新建系统变量,classpath,;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 3)  Path,%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 4)  测试