zoukankan      html  css  js  c++  java
  • LAMP(三)之CentOS6编译安装httpd2.4

    安装前说明:

      httpd安装依赖于apr-1.4+,apr-util-1.4+

      CentOS6上默认是apr-1.3, apr-util-1.3

      先下载httpd2.4、apr-1.5和apr-util-1.5

      httpd下载地址:http://httpd.apache.org/download.cgi

      apr和apr-util下载地址:https://apr.apache.org/download.cgi

      开始安装:

      1. 安装开发环境,安装pcre-devel  

    # yum install pcre-devel

      2. 安装apr:下载路径 https://apr.apache.org/download.cgi

    # ./configure --prefix=/usr/local/apr --sysconfdir=/etc/apr
    # make && make install

          3. 安装apr-util:下载路径 https://apr.apache.org/download.cgi

    # ./configure prefix=/usr/local/apr-util --sysconfdir=/etc/apr-util --with-apr=/usr/local/apr
    # make && make install

      4. 安装httpd-2.4 

    # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite 
    --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most
    --enable-mpms-shared=all --with-mpm=event # make && make install

      5. 启动apache服务

      # /usr/local/bin/apachectl start
      或者添加PATH环境变量
        # vim /etc/profile.d/httpd.sh
          添加: export PATH=/usr/local/apache/bin:$PATH  //添加apache路径
        # . /etc/profile.d/httpd.sh  //重读配置文件
        # apachectl start
           Note: httpd: Could not reliably determine the server's fully qualified domain name,
              using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
             # ServerName localhost:80  //打开注释

      6. 添加服务脚本: /etc/rc.d/init.d/httpd

    #!/bin/bash
    #
    # httpd        Startup script for the Apache HTTP Server
    #
    # chkconfig: - 85 15
    # description: The Apache HTTP Server is an efficient and extensible  
    #        server implementing the current HTTP standards.
    # processname: httpd
    # config: /etc/httpd/conf/httpd.conf
    # config: /etc/sysconfig/httpd
    # pidfile: /var/run/httpd/httpd.pid
    #
    ### BEGIN INIT INFO
    # Provides: httpd
    # Required-Start: $local_fs $remote_fs $network $named
    # Required-Stop: $local_fs $remote_fs $network
    # Should-Start: distcache
    # Short-Description: start and stop Apache HTTP Server
    # Description: The Apache HTTP Server is an extensible server 
    #  implementing the current HTTP standards.
    ### END INIT INFO
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    if [ -f /etc/sysconfig/httpd ]; then
            . /etc/sysconfig/httpd
    fi
    
    # Start httpd in the C locale by default.
    HTTPD_LANG=${HTTPD_LANG-"C"}
    
    # This will prevent initlog from swallowing up a pass-phrase prompt if
    # mod_ssl needs a pass-phrase from the user.
    INITLOG_ARGS=""
    
    # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
    # with the thread-based "worker" MPM; BE WARNED that some modules may not
    # work correctly with a thread-based MPM; notably PHP will refuse to start.
    
    # Path to the apachectl script, server binary, and short-form for messages.
    apachectl=/usr/local/apache/bin/apachectl
    httpd=/usr/local/apache/bin/httpd
    prog=httpd
    pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
    lockfile=${LOCKFILE-/var/lock/subsys/httpd}
    RETVAL=0
    STOP_TIMEOUT=${STOP_TIMEOUT-10}
    
    # The semantics of these two functions differ from the way apachectl does
    # things -- attempting to start while running is a failure, and shutdown
    # when not running is also a failure.  So we just do it the way init scripts
    # are expected to behave here.
    start() {
            echo -n $"Starting $prog: "
            LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
            RETVAL=$?
            echo
            [ $RETVAL = 0 ] && touch ${lockfile}
            return $RETVAL
    }
    
    # When stopping httpd, a delay (of default 10 second) is required
    # before SIGKILLing the httpd parent; this gives enough time for the
    # httpd parent to SIGKILL any errant children.
    stop() {
      status -p ${pidfile} $httpd > /dev/null
      if [[ $? = 0 ]]; then
        echo -n $"Stopping $prog: "
        killproc -p ${pidfile} -d ${STOP_TIMEOUT} $httpd
      else
        echo -n $"Stopping $prog: "
        success
      fi
      RETVAL=$?
      echo
      [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
    }
    
    reload() {
        echo -n $"Reloading $prog: "
        if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
            RETVAL=6
            echo $"not reloading due to configuration syntax error"
            failure $"not reloading $httpd due to configuration syntax error"
        else
            # Force LSB behaviour from killproc
            LSB=1 killproc -p ${pidfile} $httpd -HUP
            RETVAL=$?
            if [ $RETVAL -eq 7 ]; then
                failure $"httpd shutdown"
            fi
        fi
        echo
    }
    
    # See how we were called.
    case "$1" in
      start)
      start
      ;;
      stop)
      stop
      ;;
      status)
            status -p ${pidfile} $httpd
      RETVAL=$?
      ;;
      restart)
      stop
      start
      ;;
      condrestart|try-restart)
      if status -p ${pidfile} $httpd >&/dev/null; then
        stop
        start
      fi
      ;;
      force-reload|reload)
            reload
      ;;
      graceful|help|configtest|fullstatus)
      $apachectl $@
      RETVAL=$?
      ;;
      *)
      echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}"
      RETVAL=2
    esac
    
    exit $RETVAL
    添加服务并启动httpd服务
      # cd /etc/rc.d/init.d   # chkconfig --add httpd   # vim /etc/profile.d/httpd.sh
         添加: export PATH=/usr/local/apache/bin:$PATH
      # ./etc/profile.d/httpd.sh

      # service httpd start

     

     

      

  • 相关阅读:
    最短Hamilton路径-状压dp解法
    泡芙
    斗地主
    楼间跳跃
    联合权值
    虫食算
    抢掠计划
    间谍网络
    城堡the castle
    【模板】缩点
  • 原文地址:https://www.cnblogs.com/ckh2014/p/10777961.html
Copyright © 2011-2022 走看看