zoukankan      html  css  js  c++  java
  • 手动编译安装LAMP之httpd

    安装前准备:

    开发环境:Development Libraries 和 Development Tools

    httpd环境包:apr-1.4.6.tar.bz2 和 apr-util-1.4.1.tar.bz2

    httpd代码包:httpd-2.4.3.tar.bz2

    确保安装之前的环境是干净的


    1. 编译安装apr 和 apr -util

    (1) 编译安装apr

    # tar xf apr-1.4.6.tar.bz2
    # cd apr-1.4.6
    # ./configure --prefix=/usr/local/apr
    # make && make install

    (2) 编译安装apr-util


    # tar xf apr-util-1.4.1.tar.bz2
    # cd apr-util-1.4.1
    # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    # make && make install

    (3) httpd-2.4.3编译过程也要依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带,因此,找到并安装即可。


    2、编译安装httpd-2.4.3

    首先下载httpd-2.4.3到本地,注意2.4.3之前的版本不支持event模块。而后执行如下命令进行编译安装过程:

    # tar xf httpd-2.4.3.tar.bz2
    # cd httpd-2.4.3
    # ./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-mpms-shared=all --with-mpm=event
    # make && make install


    3、修改httpd的主配置文件,设置其Pid文件的路径


    编辑/etc/httpd/httpd.conf,添加如下行即可:
    PidFile  "/var/run/httpd.pid"


    4、提供SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:


    #!/bin/bash
    #
    # httpd        Startup script for the Apache HTTP Server
    #
    # chkconfig: - 85 15
    # description: Apache is a World Wide Web server.  It is used to serve
    #       HTML files and CGI.
    # processname: httpd
    # config: /etc/httpd/conf/httpd.conf
    # config: /etc/sysconfig/httpd
    # pidfile: /var/run/httpd.pid


    # 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=${HTTPD-/usr/local/apache/bin/httpd}
    prog=httpd
    pidfile=${PIDFILE-/var/run/httpd.pid}
    lockfile=${LOCKFILE-/var/lock/subsys/httpd}
    RETVAL=0


    start() {
            echo -n $"Starting $prog: "
            LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
            RETVAL=$?
            echo
            [ $RETVAL = 0 ] && touch ${lockfile}
            return $RETVAL
    }


    stop() {
    echo -n $"Stopping $prog: "
    killproc -p ${pidfile} -d 10 $httpd
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
    }
    reload() {
        echo -n $"Reloading $prog: "
        if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
            RETVAL=$?
            echo $"not reloading due to configuration syntax error"
            failure $"not reloading $httpd due to configuration syntax error"
        else
            killproc -p ${pidfile} $httpd -HUP
            RETVAL=$?
        fi
        echo
    }


    # See how we were called.
    case "$1" in
      start)
    start
    ;;
      stop)
    stop
    ;;
      status)
            status -p ${pidfile} $httpd
    RETVAL=$?
    ;;
      restart)
    stop
    start
    ;;
      condrestart)
    if [ -f ${pidfile} ] ; then
    stop
    start
    fi
    ;;
      reload)
            reload
    ;;
      graceful|help|configtest|fullstatus)
    $apachectl $@
    RETVAL=$?
    ;;
      *)
    echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
    exit 1
    esac


    exit $RETVAL


    而后为此脚本赋予执行权限:
    # chmod +x /etc/rc.d/init.d/httpd


    加入服务列表:
    # chkconfig --add httpd




    接下来就可以启动服务进行测试了。

    起风了,努力生存
  • 相关阅读:
    android编译全过程
    Android APK反编译得到Java源代码和资源文件
    获取Android的Java源代码并在Eclipse中关联查看的最新方法《转载》
    定制ROM,添加apk文件报错。
    Ubuntu下下载编译android源码
    poj 2714 Random Walk
    hdu 3829 Cat VS Dog
    第九场组队赛总结
    2012 MUTC 9 总结
    hdu 1100 Trees Made to Order
  • 原文地址:https://www.cnblogs.com/StivenYang/p/8441296.html
Copyright © 2011-2022 走看看