ITPub博客

首页 > > > 业务初始化-lamp脚本

业务初始化-lamp脚本

作者:longmanma 时间:2019-12-10 17:17:11 0 删除 编辑

业务初始化-lamp脚本

#!/bin/bash

#lamp install script from Bai Shuming

#date:2015-05-15

#release 1.0

#os rhel6

PACKAGES="../soft"

NOW=`pwd`

APR=apr-1.5.2.tar.bz2

APR_UTIL=apr-util-1.5.4.tar.bz2

APR_ICONV=apr-iconv-1.2.1.tar.bz2

APACHE=httpd-2.4.12.tar.bz2

D_PATH="/usr/local"

S_PATH="/usr/src"

MYSQL=mysql-5.5.29.tar.gz

LIBICONV=libiconv-1.14.tar.gz

LIBMCRYPT=libmcrypt-2.5.8.tar.gz

MCRYPT=mcrypt-2.6.8.tar.gz

MHASH=mhash-0.9.9.9.tar.gz

PHP=php-5.6.9.tar.bz2

######check

check () {

#必须是root用户才可以

[ $UID -ne 0 ]&&echo "need to root is that"&&exit 1

#安装依赖

yum search elinks &>/dev/null

if [ $? -eq 0 ];then

yum -y install gcc gcc-c++ openssl-devel pcre-devel ncurses-devel libtool libxml2-devel bzip2-devel net-snmp-devel curl-devel libpng-devel freetype-devel libjpeg-devel zlib-devel cmake

[ $? -ne 0 ]&&echo "YUM: ERROR"&&exit 1

else

echo "YUM: ERROR";exit 1

fi

}

######apr

apr () {

if [ -f $PACKAGES/$APR ];then

tar xf $PACKAGES/$APR -C $S_PATH

CUR_PACKAGE=`echo $APR|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

./configure --prefix=$D_PATH/apr 1>/dev/null

if [ $? -eq 0 ];then

make 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "APR: Make install ERROR , EXIT...";exit 1

else

cd -;rm -rf $S_PATH/$CUR_PACKAGE

fi

else

echo "APR: make ERROR , EXIT...";exit 1

fi

else

echo "APR: Configure ERROR , EXIT...";exit 1

fi

else

echo "APR: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "APR: Not fount $APR , EIXT...";exit 1

fi

}

######apr-util

apr_util () {

if [ -f $PACKAGES/$APR_UTIL ];then

tar xf $PACKAGES/$APR_UTIL -C $S_PATH

CUR_PACKAGE=`echo $APR_UTIL|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

./configure --prefix=$D_PATH/apr-util --with-apr=$D_PATH/apr/ 1>/dev/null

if [ $? -eq 0 ];then

make 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "APR-util: Make install ERROR , EXIT...";exit 1

else

cd -;rm -rf $S_PATH/$CUR_PACKAGE

fi

else

echo "APR-util: make ERROR , EXIT...";exit 1

fi

else

echo "APR-util: Configure ERROR , EXIT...";exit 1

fi

else

echo "APR-util: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "APR-util: Not fount $APR_UTIL , EIXT...";exit 1

fi

}

apr_iconv () {

if [ -f $PACKAGES/$APR_ICONV ];then

tar xf $PACKAGES/$APR_ICONV -C $S_PATH

CUR_PACKAGE=`echo $APR_ICONV|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

./configure --prefix=$D_PATH/apr-iconv --with-apr=$D_PATH/apr/ 1>/dev/null

if [ $? -eq 0 ];then

make 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "APR-iconv: Make install ERROR , EXIT...";exit 1

else

cd -;rm -rf $S_PATH/$CUR_PACKAGE

fi

else

echo "APR-iconv: make ERROR , EXIT...";exit 1

fi

else

echo "APR-iconv: Configure ERROR , EXIT...";exit 1

fi

else

echo "APR-iconv: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "APR-iconv: Not fount $APR_ICONV , EIXT...";exit 1

fi

}

apache () {

apr;apr_util;apr_iconv

[ $? -ne 0 ]&&"ERROR: Please check apr install" && exit 1

if [ -f $PACKAGES/$APACHE ];then

tar xf $PACKAGES/$APACHE -C $S_PATH

CUR_PACKAGE=`echo $APACHE|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

./configure --prefix=$D_PATH/apache --with-apr=$D_PATH/apr --with-apr-util=$D_PATH/apr-util/ --enable-module=so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-ab --disable-userdir --with-mpm=prefork --enable-nonportable-atomics --disable-ipv6 --with-sendfile 1>/dev/null

if [ $? -eq 0 ];then

make 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "APACHE: Make install ERROR , EXIT...";exit 1

else

cd - ;rm -rf $S_PATH/$CUR_PACKAGE

fi

else

echo "APACHE: make ERROR , EXIT...";exit 1

fi

else

echo "APACHE: Configure ERROR , EXIT...";exit 1

fi

else

echo "APACHE: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "APACHE: Not fount $APACHE , EIXT...";exit 1

fi

}

######mysql

mysql_install_post_set () {

useradd -s /sbin/nologin -r mysql

mkdir -pv /usr/local/mysql/data

cp support-files/my-innodb-heavy-4G.cnf /etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysql

chmod 755 /etc/init.d/mysql

chown mysql.mysql /usr/local/mysql/ -R

ln -s /usr/local/mysql/bin/* /usr/bin/

ln -s /usr/local/mysql/lib/* /usr/lib/

ln -s /usr/local/mysql/libexec/* /usr/local/libexec

ln -s /usr/local/mysql/share/man/man1/* /usr/share/man/man1

ln -s /usr/local/mysql/share/man/man8/* /usr/share/man/man8

sh scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 1>/dev/null

}

mysql () {

if [ -f $PACKAGES/$MYSQL ];then

tar xf $PACKAGES/$MYSQL -C $S_PATH

CUR_PACKAGE=`echo $MYSQL|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data/ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_INNODBBASE_STORAGE_ENGINE=1 -DENABLE_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql -DWITH_DEBUG=0 -DWITH_EMBEDED_SERVER=0 1>/dev/null

if [ $? -eq 0 ];then

make 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "MYSQL: Make install ERROR , EXIT...";exit 1

else

mysql_install_post_set

cd - ;rm -rf $S_PATH/$CUR_PACKAGE

fi

else

echo "MYSQL: make ERROR , EXIT...";exit 1

fi

else

echo "MYSQL: Configure ERROR , EXIT...";exit 1

fi

else

echo "MYSQL: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "MYSQL: Not fount $APACHE , EIXT...";exit 1

fi

}

######php

libiconv () {

if [ -f $PACKAGES/$LIBICONV ];then

tar xf $PACKAGES/$LIBICONV -C $S_PATH

CUR_PACKAGE=`echo $LIBICONV|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

./configure --prefix=/usr/local --with-apr=$D_PATH/apr 1>/dev/null

if [ $? -eq 0 ];then

make 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "LIBICONV: Make install ERROR , EXIT...";exit 1

else

cd -;rm -rf $S_PATH/$CUR_PACKAGE

fi

else

echo "LIBICONV: make ERROR , EXIT...";exit 1

fi

else

echo "LIBICONV: Configure ERROR , EXIT...";exit 1

fi

else

echo "LIBICONV: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "LIBICONV: Not fount $LIBICONV , EIXT...";exit 1

fi

}

libmcrypt () {

if [ -f $PACKAGES/$LIBMCRYPT ];then

tar xf $PACKAGES/$LIBMCRYPT -C $S_PATH

CUR_PACKAGE=`echo $LIBMCRYPT|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

./configure --prefix=$D_PATH/libmcrypt 1>/dev/null

if [ $? -eq 0 ];then

make 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "LIBMCRYPT: Make install ERROR , EXIT...";exit 1

else

/sbin/ldconfig

cd libltdl/

./configure --enable-ltdl-install 1>/dev/null

make 1>/dev/null

make install 1>/dev/null

if [ $? -eq 0 ];then

echo "export LD_LIBRARY_PATH=$D_PATH/libmcrypt/lib:LD_LIBRARY_PATH" >> /etc/profile

source /etc/profile

cd $NOW;rm -rf $S_PATH/$CUR_PACKAGE

else

echo "LIBMCRYPT(libltdl) ERROR,EXIT....";exit 1

fi

fi

else

echo "LIBMCRYPT: make ERROR , EXIT...";exit 1

fi

else

echo "LIBMCRYPT: Configure ERROR , EXIT...";exit 1

fi

else

echo "LIBMCRYPT: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "LIBMCRYPT: Not fount $LIBMCRYPT , EIXT...";exit 1

fi

}

mhash () {

if [ -f $PACKAGES/$MHASH ];then

tar xf $PACKAGES/$MHASH -C $S_PATH

CUR_PACKAGE=`echo $MHASH|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

./configure 1>/dev/null

if [ $? -eq 0 ];then

make 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "MHASH: Make install ERROR , EXIT...";exit 1

else

ln -s /usr/local/lib/* /usr/lib/

ln -s /usr/local/bin/libmcrypt-config /usr/bin/

cd -;rm -rf $S_PATH/$CUR_PACKAGE

fi

else

echo "MHASH: make ERROR , EXIT...";exit 1

fi

else

echo "MHASH: Configure ERROR , EXIT...";exit 1

fi

else

echo "MHASH: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "MHASH: Not fount $MHASH , EIXT...";exit 1

fi

}

mcrypt () {

if [ -f $PACKAGES/$MCRYPT ];then

tar xf $PACKAGES/$MCRYPT -C $S_PATH

CUR_PACKAGE=`echo $MCRYPT|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

./configure --with-libmcrypt-prefix=$D_PATH/libmcrypt 1>/dev/null

if [ $? -eq 0 ];then

make 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "MCRYPT: Make install ERROR , EXIT...";exit 1

else

cd -;rm -rf $S_PATH/$CUR_PACKAGE

fi

else

echo "MCRYPT: make ERROR , EXIT...";exit 1

fi

else

echo "MCRYPT: Configure ERROR , EXIT...";exit 1

fi

else

echo "MCRYPT: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "MCRYPT: Not fount $MCRYPT, EIXT...";exit 1

fi

}

php () {

libiconv;libmcrypt;mhash;mcrypt

[ $? -ne 0 ]&&echo "check php libiconv and encrypt install"&&exit 1

if [ -f $PACKAGES/$PHP ];then

tar xf $PACKAGES/$PHP -C $S_PATH

CUR_PACKAGE=`echo $PHP|awk -F ".tar" '{print $1}'`

if [ -d $S_PATH/$CUR_PACKAGE ];then

cd $S_PATH/$CUR_PACKAGE

./configure --prefix=$D_PATH/php --with-config-file-path=$D_PATH/php/etc --with-mysql=$D_PATH/mysql/ --with-mysqli=$D_PATH/mysql/bin/mysql_config --with-pdo-mysql=$D_PATH/mysql --with-iconv-dir=/usr/local/ --enable-fpm --with-fpm-user=apache --with-fpm-group=apache --with-pcre-regex --with-zlib --with-bz2 --enable-calendar --disable-phar --with-curl --enable-dba --with-libxml-dir --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-mhash --enable-mbstring --with-mcrypt=$D_PATH/libmcrypt --enable-opcache=no --enable-pcntl --enable-xml --disable-rpath --enable-shmop --enable-sockets --enable-zip --enable-bcmath --with-snmp --disable-ipv6 --disable-rpath --disable-debug --with-apxs2=$D_PATH/apache/bin/apxs 1>/dev/null

if [ $? -eq 0 ];then

make ZEND_EXTRA_LIBS='-liconv' 1>/dev/null

if [ $? -eq 0 ];then

make install 1>/dev/null

if [ $? -ne 0 ];then

echo "PHP: Make install ERROR , EXIT...";exit 1

else

sed -i.bak '/libphp5.so/a\AddType application/x-httpd-php .php' $D_PATH/apache/conf/httpd.conf

cp php.ini-production $D_PATH/php/etc/php.ini

cd -;rm -rf $S_PATH/$CUR_PACKAGE

fi

else

echo "PHP: make ERROR , EXIT...";exit 1

fi

else

echo "PHP: Configure ERROR , EXIT...";exit 1

fi

else

echo "PHP: Tar Command ERROR , EXIT...";exit 1

fi

else

echo "PHP: Not fount $PHP, EIXT...";exit 1

fi

}

case $1 in

apache) check;apache;;

mysql) check;mysql;;

php) check;php;;

lamp) check;apache;mysql;php;;

*) echo "$0: apache|mysql|php|lamp";;

esac

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2730/viewspace-3154239/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: joda日期格式转换
下一篇: java获取当前方法
请登录后发表评论 登录
全部评论

注册时间:2019-12-18

  • 博文量
    492
  • 访问量
    11988