zoukankan      html  css  js  c++  java
  • httpd2.2.21 + php5.3.8 自动安装脚本

    简介:这是 httpd-2.2.21 + php-5.3.8 自动安装脚本的详细页面,介绍了和php,php, bash httpd-2.2.21 + php-5.3.8 自动安装脚本有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=359495' scrolling='no'>

    http://netkiller.sourceforge.net/architect/operations/lamp.html

    #!/bin/bash
    #================================================================================
    # LAMP Installing script by Neo <openunix@163.com>
    # http://netkiller.sourceforge.net/
    # $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://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
    }
    
    
    
    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/* /usr/lib64/
    #ln -s /srv/mysql/bin/mysql_config /usr/local/bin/
    
    rm -rf $PHP_DIR
    tar zxf $PHP_SRC
    cd $PHP_DIR
    
    ./configure --prefix=$PREFIX_DIR/$PHP_DIR \
    --with-config-file-path=$PREFIX_DIR/$PHP_DIR/etc \
    --with-config-file-scan-dir=$PREFIX_DIR/$PHP_DIR/etc/conf.d \
    --with-apxs2=$PREFIX_DIR/$HTTPD_DIR/bin/apxs \
    --with-curl \
    --with-gd \
    --with-jpeg-dir \
    --with-png-dir \
    --with-freetype-dir \
    --with-xpm-dir \
    --with-iconv \
    --with-zlib-dir \
    --with-xmlrpc \
    --with-openssl \
    --with-mcrypt \
    --with-mhash=shared \
    --with-mysql=/srv/mysql-5.1.50-linux-x86_64-glibc23 \
    --with-pdo-mysql=/srv/mysql-5.1.50-linux-x86_64-glibc23 \
    --with-sqlite=shared \
    --with-pdo-sqlite=shared \
    --with-ldap=shared \
    --with-snmp=shared \
    --with-xsl=shared \
    --with-pear \
    --enable-sockets \
    --enable-soap \
    --enable-mbstring \
    --enable-magic-quotes \
    --enable-inline-optimization \
    --enable-gd-native-ttf \
    --enable-zip \
    --enable-xml \
    --enable-ftp
    
    #--with-mysqli=/srv/mysql-5.1.50-linux-x86_64-glibc23/bin/mysql_config \
    #--enable-embedded-mysqli \
    
    #--enable-fpm \
    #--with-fpm-user=nobody \
    #--with-fpm-group=nobody \
    #--with-mysql=/srv/mysql-5.5.9-linux2.6-x86_64 \
    #--with-pdo-mysql=/srv/mysql-5.5.9-linux2.6-x86_64 \
    
    [[ $? -ne 0 ]] && echo "Step: configure" &&  exit $?
    
    #make && make test && make install
    #make &&  make install
    make
    [[ $? -ne 0 ]] && echo "Step: make" &&  exit $?
    
    make install
    [[ $? -ne 0 ]] && echo "Step: make install" &&  exit $?
    
    mkdir -p $PREFIX_DIR/$PHP_DIR/etc/conf.d
    cp $PREFIX_DIR/src/$PHP_DIR/php.ini-production $PREFIX_DIR/$PHP_DIR/etc/php.ini
    ln -s $PREFIX_DIR/$PHP_DIR $PREFIX_DIR/php
    
    cp $PREFIX_DIR/$PHP_DIR/etc/php.ini $PREFIX_DIR/$PHP_DIR/etc/php.ini.original
    
    vim $PREFIX_DIR/php/etc/php.ini <<EOF > /dev/null 2>&1
    :%s!;include_path = ".:/php/includes"!;include_path = ".:/php/includes"\rinclude_path = ".:$PREFIX_DIR/$PHP_DIR/lib/php"!
    :%s:;extension_dir = "./":extension_dir = "$PREFIX_DIR/$PHP_DIR/lib/php/extensions":
    :%s/memory_limit = 128M/memory_limit = 64M/
    :%s/log_errors = Off/log_errors = On/
    :%s#;error_log = php_errors.log#error_log = php_errors.log#
    :%s#;open_basedir =#open_basedir = /www/:/tmp/#
    :%s/upload_max_filesize = 2M/upload_max_filesize = 8M/
    :wq
    EOF
    
    #:%s/mysql.allow_persistent = On/mysql.allow_persistent = Off/
    #:%s/register_long_arrays = On/register_long_arrays = Off/
    #:%s/display_errors = On/display_errors = Off/
    #:%s/output_buffering = Off/output_buffering = On/
    #:%s/allow_call_time_pass_reference = On/allow_call_time_pass_reference = Off/
    #:%s#;error_log = php_errors.log#error_log = /www/logs/php_errors.log#
    
    
        read -p "php memcache module? [y/n]" -n 1 key
        echo
        if [ $key = 'y' ]; then
    $PREFIX_DIR/php/bin/pecl install memcache
    cp $PREFIX_DIR/$PHP_DIR/lib/php/extensions/no-debug-zts-*/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

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/359495.html pageNo:1
  • 相关阅读:
    聚类算法学习-kmeans,kmedoids,GMM
    hdu
    高仿精仿微信应用ios源码下载
    UVA 116 Unidirectional TSP 经典dp题
    [置顶] 动态规划之切割钢条
    poj
    求解printf函数?
    实现多文件上传在iOS开发中
    开源DirectShow分析器和解码器: LAV Filter
    <Win32_20>纯c语言版的打飞机游戏出炉了^_^
  • 原文地址:https://www.cnblogs.com/ooooo/p/2236003.html
Copyright © 2011-2022 走看看