LAMP or LNMP 自动安装脚本(函数思想编写)

#!/bin/bash
# date: 2016-03-12
# desc: LAN/MP auto install script 
# Author: Djoker
#function area
#<---------------------start---------------------------------------->
#function: check error
runcheck(){
if [ $1 != 0 ];then
  echo "------------------------"
  echo "|Error,please check log|"
  echo "------------------------"
  exit 1
fi
}
#function: yum install base packets
yumins(){
while [ -n "$1" ]
do
    yum -y install $1 
    runcheck $?
    echo
    echo "$1 is install ......over!"
    echo
    sleep 1
    shift
done
}
#function: install mysql
install_mysql_func(){
cd /tmp
if [ -e mysql-5.5.22.tar.gz ];then
  echo "file is exist!!!"
else
  wget http://down1.chinaunix.net/distfiles/mysql-5.5.22.tar.gz
  runcheck $?
fi
tar vxf mysql-5.5.22.tar.gz
cd mysql-5.5.22
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -Wno-dev
runcheck $?
make && make install
runcheck $?
}
#function: config mysql
config_mysql_func(){
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
chmod +x /tmp/mysql-5.5.22/scripts/mysql_install_db
/tmp/mysql-5.5.22/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
runcheck $?
cp -a /tmp/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld 
chmod +x /etc/init.d/mysqld
echo "PATH=\$PATH:/usr/local/mysql/bin" >> /etc/profile
chkconfig --add mysqld
service mysqld start
chkconfig mysqld on
runcheck $?
}
#function: install php
install_php_func(){
cd /tmp
if [ -e libmcrypt-devel-2.5.7-1.2.el6.rf.x86_64.rpm ];then
  echo "file aready is install ."
else
  wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/libmcrypt-devel-2.5.7-1.2.el6.rf.x86_64.rpm
  rpm --nodeps -i libmcrypt-devel-2.5.7-1.2.el6.rf.x86_64.rpm
fi
if [ -e php-5.4.6.tar.bz2 ];then
  echo "file is exit!!!"
else
  wget wget http://down1.chinaunix.net/distfiles/php-5.4.6.tar.bz2
  runcheck $?
fi
tar vxf php-5.4.6.tar.bz2
cd php-5.4.6
./configure --prefix=/usr/local/php --enable-fpm  --with-mcrypt=/usr/local/libmcrypt --with-zlib --enable-mbstring --with-openssl --with-mysql --with-mysqli --with-mysql-sock --with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf  --enable-pdo --with-pdo-mysql --with-gettext --with-curl --with-pdo-mysql --enable-sockets --enable-bcmath --enable-xml --with-bz2 --enable-zip --enable-freetyp
runcheck $?
make && make install
runcheck $?
}
#function: config php
config_php_func(){
cp /tmp/php-5.4.6/php.ini-development /usr/local/php/etc/php.ini 
cp /tmp/php-5.4.6/sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
echo ‘#!/bin/sh  
# DateTime: 2013-09-16
# Author: lianbaikai
# site:http://www.ttlsa.com/html/3039.html
# chkconfig:   - 84 16   
# Source function library.  
. /etc/rc.d/init.d/functions  
 
# Source networking configuration.  
. /etc/sysconfig/network  
 
# Check that networking is up.  
[ "$NETWORKING" = "no" ] && exit 0  
 
phpfpm="/usr/local/php/sbin/php-fpm"  
prog=$(basename ${phpfpm})  
 
lockfile=/var/lock/subsys/phpfpm
 
start() {  
    [ -x ${phpfpm} ] || exit 5  
    echo -n $"Starting $prog: "  
    daemon ${phpfpm}
    retval=$?  
    echo  
    [ $retval -eq 0 ] && touch $lockfile  
    return $retval  
}  
 
stop() {  
    echo -n $"Stopping $prog: "  
    killproc $prog -QUIT  
    retval=$?  
    echo  
    [ $retval -eq 0 ] && rm -f $lockfile  
    return $retval  
}  
 
restart() {  
    configtest || return $?  
    stop  
    start  
}  
 
reload() {  
    configtest || return $?  
    echo -n $"Reloading $prog: "  
    killproc ${phpfpm} -HUP  
    RETVAL=$?  
    echo  
}  
 
force_reload() {  
    restart  
}  
 
configtest() {  
  ${phpfpm} -t
}  
 
rh_status() {  
    status $prog  
}  
 
rh_status_q() {  
    rh_status >/dev/null 2>&1  
}  
 
case "$1" in  
    start)  
        rh_status_q && exit 0  
        $1  
        ;;  
    stop)  
        rh_status_q || exit 0  
        $1  
        ;;  
    restart|configtest)  
        $1  
        ;;  
    reload)  
        rh_status_q || exit 7  
        $1  
        ;;  
    status)  
        rh_status  
        ;;  
    *)  
        echo $"Usage: $0 {start|stop|status|restart|reload|configtest}"  
        exit 2  
esac‘ > /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
}
#function: install httpd
install_httpd_func(){
cd /tmp
if [ -e httpd-2.2.9.tar.bz2 ];then
  echo "file is exit!!!"
else
  wget http://down1.chinaunix.net/distfiles/httpd-2.2.9.tar.bz2
  runcheck $?
fi
tar vxf httpd-2.2.9.tar.bz2
cd httpd-2.2.9
./configure --prefix=/usr/local/apache --enable-so --enable-cgi --enable-rewreite --with-zlib --with-pcre --enable-modules=all --enable-mpms-shared=all 
runcheck $?
make && make install
runcheck $?
}
#function: config httpd
config_httpd_func(){
echo "1"
}
#function: install nginx
install_nginx_func(){
cd /tmp
if [ -e nginx-1.2.1.tar.gz ];then
  echo "file is exit!!!"
else
  wget http://down1.chinaunix.net/distfiles/nginx-1.2.1.tar.gz
  runcheck $?
fi
tar xvf nginx-1.2.1.tar.gz
cd nginx-1.2.1
./configure  --prefix=/usr/local/nginx --with-select_module --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_flv_module --with-http_mp4_module --with-http_stub_status_module --with-debug
runcheck $?
make && make install
runcheck $?
}
#function: config nginx
#config_nginxf_func(){
#}
#<---------------------stop---------------------------------------->
#main
echo
while true
do
  read -p "Do you want to running Script ? [Y|N]:" choise
  if [ -n "$choise" ];then
    if [ $choise = "y" ] ||[ $choise = "y" ] ;then
      break
    elif [ $choise = "N" ] || [ $choise = "n" ] ;then
      exit 1
    else 
      echo "Please input Y|N !,try agint"
      echo
    fi
  else 
    echo "Please input Y|N !,try agint"
    echo
  fi
done
#install base packets
yumins vim make gcc openssl openssl-devel
#install_MySQL
echo "check mysql deps packets"
yumins cmake ncurses-devel ncurses-libs
echo "start install mysql!!!"
sleep 1
install_mysql_func
runcheck $?
echo "start config mysql"
config_mysql_func
echo "mysql install end !!!"
sleep 1
#install_php
echo "check php deps packets"
yumins libxml2-devel bzip2 bzip2-devel libcurl-devel gd gd-devel libgcrypt  libjpeg* libpng-devel
echo "start install php!!!"
sleep 1
install_php_func
runcheck $?
echo "start config php"
config_php_func
echo "php install end !!!"
sleep 1
while true
do
    read -p ‘Do you want to install Nginx or Httpd, 1 is Nginx , 2 is Httpd [1|2]: ‘  hnchoise
    if [ $hnchoise  -eq 1 ];then
        #install_httpd
        echo "start install httpd!!!"
        sleep 1
        install_httpd_func
        runcheck $?
        echo "start config httpd !!!"
        config_httpd_func
        echo "httpd install end !!!"
        sleep 1
        break
    elif [ $hnchoise -eq 2 ];then
       #install_Nginx
       echo "start install nginx!!!"
       install_nginx_func
       runcheck $?
       echo "nginx install end !!!"
       sleep 1
       break
    else 
       echo "Please input 1 or 2 ,conntinue? "
       echo
    fi
done
echo
echo ‘-----------------‘
echo ‘|Install is End!|‘
echo ‘-----------------‘
时间: 2025-01-06 03:28:24

LAMP or LNMP 自动安装脚本(函数思想编写)的相关文章

LAMP or LNMP 一键安装脚本

#!/bin/bash echo "It will install lamp or lnmp." sleep 1 ##check last command is OK or not. check_ok() { if [ $? != 0 ] then     echo "Error, Check the error log."     exit 1 fi } ##get the archive of the system,i686 or x86_64. ar=`arc

linux LNMP自动安装脚本

#!/bin/bashsoft_dir="/home/soft"config_dir="/home/config"httpd="httpd-2.0.52"mysql="mysql-5.1.56"php="php-5.2.17"phpmyadmin="phpMyAdmin-2.9.0.2"zend="ZendOptimizer-3.2.6-linux-glibc21-i386&q

mysql 自动备份和nginx自动安装脚本

一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` MYSQLDB=webapp MYSQLPW=backup MYSQLUSR=backup #must use root user run scripts 必须使用root用户运行,$UID为系统变量 if [

python3自动安装脚本,python3.x与python2.x共存

1.前言: python3过程中,通过搜索一些文章参考安装过程发现比较麻烦,而且还出现一些不可预期的报错.python3环境需要升级openssl,所以为了部署到其他环境更方便,写自动安装脚本方式,且安装模式为python3.x与python2.x共存,防止可能发生原有环境异常的情况. 现在我把脚本分享出来,希望可以帮助到有需要的人,业务采集监控python脚本文件不提供,因为那些跟实际业务开发关联比较紧,比较没有参考意义也不方便公开. shell自动安装脚本,只需按说明简单修改配置,和调用集成

mysql自动安装脚本

为适应自己工作习惯和需要,花一点时间写了一个mysql自动安装脚本,供大家参考学习. 注意: 1.需要先安装cmake 2.数据库版本需要在第二步安装mysql时修改 3.该脚本是以root用户安装并启动 脚本内容如下: ######################################################################## #mysql自动安装脚本,其中变量/mysql_v_dir/和/port/可根据实际需要修改    # #执行脚本命令:sh mys

ipvsadm+keepalived+inotify-tools自动安装脚本

#!/bin/bash # # #this is install keepalived+lvs-DR # # tar_dir=/usr/src configure_yum() { echo "[rhel-local]">/etc/yum.repos.d/rhel-local.repo echo "baseurl=file:///media/Server">>/etc/yum.repos.d/rhel-local.repo echo "en

linux下PXE无人值守环境自动安装脚本

当时单位要安装一套linux的PXE无人值守装机程序,装完后花了九牛二虎之力写了一个自动安装脚本,以便今后安全方便,不过后来就没怎么用了,甚至都有些淡忘了,哈哈,分享出来,有研究PXE自动安装的可以看看,在使用的时候里面的ip地址要换掉的. #!/bin/sh #writer:gaolixu yum -y install dhcp tftp-server vsftpd syslinux xinetd if ! service dhcpd status ;then ############### 

Windows ftp脚本和RSCD agent自动安装脚本

Windows ftp脚本 和bladelogic RSCD Agent自动安装脚本 @echo off if %PROCESSOR_ARCHITECTURE:~-1%==4 ( netsh advfirewall firewall add rule name="all tcp 4750" dir=in protocol=tcp localport=475 action=allow netsh advfirewall firewall add rule name="all t

ELK自动安装脚本

ELK自动安装脚本 一.简介 ELK由Elasticsearch.Logstash和Kibana三部分组件组成: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,它可以对你的日志进行收集.分析,并将其存储供以后使用 kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web