本文共 12767 字,大约阅读时间需要 42 分钟。
- #!/bin/bash
- #================================================================================
- # LAMP Installing script by Neo <openunix@163.com>
- # http:
- # $Id$
- #================================================================================
- SRC_DIR=$(pwd)
- PREFIX_DIR=/srv
- EMAIL=webmaster@example.com
- #================================================================================
- HTTPD_SRC='httpd-2.2.21.tar.gz'
- PHP_SRC='php-5.3.8.tar.gz'
- MYSQL_SRC='mysql-5.5.9.tar.gz'
- MYSQL_LIBS_SRC='mysql-5.1.50.tar.gz'
- MYSQL_BIN='mysql-5.1.50-linux-x86_64-glibc23.tar.gz'
- JAVA_BIN='jdk-6u20-linux-x64.bin'
- #================================================================================
- HTTPD_DIR=${HTTPD_SRC%%.tar.gz}
- PHP_DIR=${PHP_SRC%%.tar.*}
- MYSQL_DIR=${MYSQL_SRC%%.tar.*}
- MYSQL_LIBS_DIR=${MYSQL_LIBS_SRC%%.tar.*}
- #================================================================================
-
- if [ -z "$( egrep "CentOS|Redhat" /etc/issue)" ]; then
- echo 'Only for Redhat or CentOS'
- exit
- fi
-
- function clean(){
- rm -rf $HTTPD_DIR
- rm -rf $PHP_DIR
- rm -rf $MYSQL_DIR
- rm -rf $MYSQL_LIBS_DIR
- }
-
- function depend(){
- yum install gcc gcc-c++ make autoconf -y
- yum install curl-devel libmcrypt-devel gd-devel libjpeg-devel libpng-devel libXpm-devel libxml2-devel libxslt-devel mhash-devel openldap-devel -y
- yum install ncurses-devel -y
- # yum install mysql-devel -y
- yum install libevent-devel -y
- yum install e4fsprogs -y
- yum install net-snmp-devel -y
- yum install setuptool ntsysv system-config-network-tui -y
- #rpm -Uvh http:
- }
-
-
-
- function httpd(){
- rm -rf $HTTPD_DIR
- tar zxf $HTTPD_SRC
- cd $HTTPD_DIR
-
- RETVAL=$?
- [[ $RETVAL != 0 ]] && echo "Static: "$RETVAL && exit $?
-
- vim server/mpm/worker/worker.c <<end > /dev/null 2>&1
- :%s/#define DEFAULT_SERVER_LIMIT 16/#define DEFAULT_SERVER_LIMIT 256/
- :%s/#define DEFAULT_THREAD_LIMIT 64/#define DEFAULT_THREAD_LIMIT 1024/
- :wq
- end
- #define MAX_SERVER_LIMIT 20000
- #define MAX_THREAD_LIMIT 20000
-
- [[ $? -ne 0 ]] && echo "Step: server/mpm/worker/worker.c" && exit $?
-
- ./configure --prefix=$PREFIX_DIR/$HTTPD_DIR \
- --with-mpm=worker \
- --enable-modules="so dir mime rewrite deflate vhost_alias include" \
- --enable-mods-shared="alias filter expires headers setenvif status info ssl usertrack cache mem-cache file-cache disk-cache version mod_unique_id " \
- --disable-authn_file \
- --disable-authn_default \
- --disable-authz_groupfile \
- --disable-authz_user \
- --disable-authz_default \
- --disable-auth_basic \
- --disable-version \
- --disable-env \
- --disable-autoindex \
- --disable-asis \
- --disable-cgid \
- --disable-cgi \
- --disable-negotiation \
- --disable-actions \
- --disable-userdir \
- --enable-so \
- --enable-file-cache \
- --enable-cache \
- --enable-disk-cache \
- --enable-mem-cache \
- --enable-expires \
- --enable-headers \
- --enable-ssl \
- --enable-info \
- --enable-rewrite
-
- #--with-mpm=worker \
- #--enable-so \
- #--enable-mods-shared=all \
- #--disable-alias
- #--disable-include \
- #--disable-status \
-
- [[ $? -ne 0 ]] && echo "Step: configure" && exit $?
-
- make clean
- make
-
- [[ $? -ne 0 ]] && echo "Step: make" && exit $?
-
- make install
-
- [[ $? -ne 0 ]] && echo "Step: make install" && exit $?
-
- cd ..
- ln -s $PREFIX_DIR/$HTTPD_DIR $PREFIX_DIR/httpd
- ln -s $PREFIX_DIR/httpd $PREFIX_DIR/apache
-
- cp $PREFIX_DIR/httpd/conf/httpd.conf $PREFIX_DIR/httpd/conf/httpd.conf.original
- mkdir -p /www/logs/error
-
- vim $PREFIX_DIR/httpd/conf/httpd.conf <<end > /dev/null 2>&1
- :%s/User daemon/User nobody/
- :%s/Group daemon/Group nobody/
- :%s/ServerAdmin you@example.com/ServerAdmin $EMAIL/
- :%s!#ServerName www.example.com:80!#ServerName www.example.com:80\rServerName 127.0.0.1!
- :%s#$PREFIX_DIR/$HTTPD_DIR/htdocs#/www#g
- :%s/#\n AllowOverride None/#\r AllowOverride All/
- :%s# DirectoryIndex index.html# DirectoryIndex index.html index.php#
- :%s= #AddType text/html .shtml= AddType text/html .shtml=
- :%s= #AddOutputFilter INCLUDES .shtml= AddOutputFilter INCLUDES .shtml=
- :%s=AddOutputFilter INCLUDES .shtml=AddOutputFilter INCLUDES .shtml\r\r AddType application/x-httpd-php .php .phtml\r AddType application/x-httpd-php-source .phps\r=
- :%s#ErrorLog "logs/error_log"#ErrorLog "| $PREFIX_DIR/httpd/bin/rotatelogs /www/logs/error/error.%Y-%m-%d.log 86400 480"#
- :%s=#Include conf/extra/httpd-info.conf=Include conf/extra/httpd-info.conf=
- :%s=#Include conf/extra/httpd-mpm.conf=Include conf/extra/httpd-mpm.conf=
- :%s=#Include conf/extra/httpd-languages.conf=Include conf/extra/httpd-languages.conf=
- :%s=#Include conf/extra/httpd-vhosts.conf=Include conf/extra/httpd-vhosts.conf=
- :%s=#Include conf/extra/httpd-default.conf=Include conf/extra/httpd-default.conf=
- :wq
- end
- #:%s!Listen 80!Listen 0.0.0.0:80!
- #:%s!#ServerName www.example.com:80!#ServerName www.example.com:80\rServerName *!
-
- #vim $PREFIX_DIR/httpd/conf/extra/httpd-mpm.conf <<end > /dev/null 2>&1
- #:%s/<IfModule mpm_worker_module>/<IfModule mpm_worker_module>\r ServerLimit 16\r ThreadLimit 128/
- #:%s/StartServers 2/StartServers 8/
- #:%s/MaxClients 150/MaxClients 2048/
- #:%s/MinSpareThreads 25/MinSpareThreads 64/
- #:%s/MaxSpareThreads 75/MaxSpareThreads 128/
- #:%s/ThreadsPerChild 25/ThreadsPerChild 128/
- #:%s/MaxRequestsPerChild 0/MaxRequestsPerChild 10000/
- #:wq
- #end
-
-
- vim $PREFIX_DIR/httpd/conf/extra/httpd-mpm.conf <<end > /dev/null 2>&1
- :%s/<IfModule mpm_worker_module>/<IfModule mpm_worker_module>\r ServerLimit 16\r ThreadLimit 256/
- :%s/StartServers 2/StartServers 8/
- :%s/MaxClients 150/MaxClients 4096/
- :%s/MinSpareThreads 25/MinSpareThreads 64/
- :%s/MaxSpareThreads 75/MaxSpareThreads 256/
- :%s/ThreadsPerChild 25/ThreadsPerChild 256/
- :%s/MaxRequestsPerChild 0/MaxRequestsPerChild 10000/
- :wq
- end
-
- vim $PREFIX_DIR/httpd/conf/extra/httpd-languages.conf <<end > /dev/null 2>&1
- :%s/LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW/#LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW/
- :%s/ForceLanguagePriority Prefer Fallback/#ForceLanguagePriority Prefer Fallback/
- :wq
- end
-
- echo -ne "
- AddDefaultCharset UTF-8
- " >> $PREFIX_DIR/httpd/conf/extra/httpd-languages.conf
-
- vim $PREFIX_DIR/httpd/conf/extra/httpd-info.conf <<end > /dev/null 2>&1
- :%s/Allow from .example.com/Allow from 127.0.0.1 172.16.1 113.106.63.1/g
- :wq
- end
-
- vim $PREFIX_DIR/httpd/conf/extra/httpd-default.conf <<end > /dev/null 2>&1
- :%s/ServerTokens Full/ServerTokens Prod/
- :wq
- end
-
- echo -ne "
- $PREFIX_DIR/httpd/bin/apachectl start
- " >> /etc/rc.local
-
- }
- function php(){
- #ln -s /usr/lib64/mysql
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- memcache.so $PREFIX_DIR/$PHP_DIR/lib/php/extensions/
- cat > $PREFIX_DIR/php/etc/conf.d/memcache.ini <<EOF
- extension=memcache.so
- EOF
- #> /dev/null 2>&1
- #memcache.default_timeout_ms=30
- fi
-
- read -p "php APC module? [y/n]" -n 1 key
- echo
- if [ $key = 'y' ]; then
- $PREFIX_DIR/php/bin/pecl install apc
- cp $PREFIX_DIR/$PHP_DIR/lib/php/extensions/no-debug-zts-*/apc.so $PREFIX_DIR/$PHP_DIR/lib/php/extensions/
- cat > $PREFIX_DIR/php/etc/conf.d/apc.ini <<EOF
- extension=apc.so
- EOF
- # > /dev/null 2>&1
-
- fi
- }
-
- function mysql(){
- rm -rf $MYSQL_DIR
- tar zxf $MYSQL_SRC
- cd $MYSQL_DIR
- ./configure \
- --prefix=$PREFIX_DIR/$MYSQL_DIR \
- --with-mysqld-user=mysql \
- --with-unix-socket-path=/tmp/mysql.sock \
- --with-charset=utf8 \
- --with-collation=utf8_general_ci
- --with-extra-charsets=complex \
- --with-big-tables \
- --with-readline \
- --with-ssl \
- --with-embedded-server \
- --with-plugins=innobase \
- --with-mysqld-user=mysql \
- --without-ndb-debug \
- --without-debug \
- --without-bench
- --without-docs \
- --localstatedir=/data/mysql/data \
- --enable-assembler \
- --enable-thread-safe-client \
- --enable-local-infile \
-
- make clean
- make && make install
- cd ..
-
- ln -s $PREFIX_DIR/$MYSQL_DIR $PREFIX_DIR/mysql
- $PREFIX_DIR/$MYSQL_DIR/bin/mysql_install_db --user=mysql
- chown mysql.mysql -R $PREFIX_DIR/$MYSQL_DIR
- cp $PREFIX_DIR/src/$MYSQL_DIR/support-files/mysql.server /etc/init.d/mysql
- /etc/init.d/mysql start
- $PREFIX_DIR/$MYSQL_DIR/bin/mysqladmin -u root password '9S5wxCVPMY'
- }
-
-
- function java(){
- JAVA_DIR=${JAVA_BIN%%.bin}
- #yum install java-1.6.0-openjdk -y
- chmod +x $JAVA_BIN
- ./$JAVA_BIN
- mv $JAVA_DIR ..
- ln -s $PREFIX_DIR/$JAVA_DIR $PREFIX_DIR/java
- echo -ne '
- export JAVA_HOME=$PREFIX_DIR/java
- export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
- export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOMR/bin:$PATH
- export PATH=$PATH:$PREFIX_DIR/httpd/bin:$PREFIX_DIR/php/bin:$PREFIX_DIR/mysql/bin:$PREFIX_DIR/resin/bin:$PREFIX_DIR/python/bin
- ' >> /etc/profile
-
- }
- function resin(){
- tar zxf resin-4.0.6.tar.gz
- mv resin-4.0.6 $PREFIX_DIR/
- echo 'export RESIN_HOME=$PREFIX_DIR/resin' >> /etc/profile
- }
- function memcache(){
- MEMCACHED_PKG=memcached-1.4.5.tar.gz
- MEMCACHED_SRC=memcached-1.4.5
- rm -rf $MEMCACHED_SRC
- tar zxf $MEMCACHED_PKG
- cd $MEMCACHED_SRC
- ./configure --prefix=$PREFIX_DIR/memcached-1.4.5
- make && make install
- }
-
-
-
- function vsftpd(){
- yum install -y vsftpd
- adduser --home-dir /www/target/logs/ --shell /sbin/nologin --password logs.xiu.com logs
- echo logs >> /etc/vsftpd/chroot_list
- vim /etc/vsftpd/vsftpd.conf <<VIM > /dev/null 2>&1
- :%s/#chroot_list_enable=YES/chroot_list_enable=YES/
- :%s/#chroot_list_file/chroot_list_file/
- VIM
- chkconfig vsftpd on
- service vsftpd start
- }
-
-
- # See how we were called.
- case "$1" in
- clean)
- clean
- ;;
- httpd)
- httpd
- ;;
- php)
- php
- ;;
- mysql)
- if [ -f $0 ] ; then
- mysql
- fi
- ;;
- depend)
- depend
- ;;
- java)
- java
- ;;
- resin)
- resin
- ;;
- profile)
- profile
- ;;
- memcache)
- memcache
- ;;
- lamp)
- clean
-
- echo ##################################################
- echo # $MYSQL_DIR Installing...
- echo ##################################################
- mysql
-
- echo ##################################################
- echo # $HTTPD_DIR Installing...
- echo ##################################################
- httpd
-
- echo ##################################################
- echo # $PHP_DIR Installing...
- echo ##################################################
- php
-
- clean
- ;;
- vsftpd)
- vsftpd
- ;;
- optimization)
- optimization
- ;;
- *)
- echo $"Usage: $0 {depend|clean}"
- echo " {httpd|php|mysql|vsftpd}"
- echo " {java|resin}"
- echo " {memcache}"
- echo " {optimization}"
- echo " {ntp|snmp|nagios|nrpe}"
- RETVAL=2
- ;;
- esac
-
- exit $RETVAL
转载地址:http://bmchx.baihongyu.com/