LAMP+NFS之编译安装http2.4

  • 源码包准备:

因为httpd编译需要aprapr-til所有一并准备好

技术分享

二、编译过程

1、编译apr

[root@www ~]# tar xf apr-1.5.0.tar.bz2
[root@www ~]# cd apr-1.5.0
[root@www apr-1.5.0]# ./configure --prefix=/usr/local/apr                     //指明安装路径
[root@www apr-1.5.0]# make
[root@www apr-1.5.0]# make install

2、编译apr-util

[root@www ~]# tar xf apr-util-1.5.3.tar.bz2
[root@www ~]# cd apr-util-1.5.3
[root@www apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr              //指明安装路径和apr路径
[root@www apr-util-1.5.3]# make
[[email protected]]# make install

3、编译httpd24

[root@www ~]# tar xf httpd-2.4.10.tar.bz2
[root@www ~]# cd httpd-2.4.10
[root@www httpd-2.4.10]# ./configure --prefix=/usr/local/httpd24--sysconfdir=/etc/httpd24 --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
--prefix=/usr/local/httpd24指明安装路径
--sysconfdir=/etc/httpd24指明配置文件路径
--enable-so支持模块动态装卸载
--enable-ssl支持ssl加密
--enable-cgi支持cgi
--enable-rewrite支持重写
--with-zlib支持zlib压缩
--with-apr=/usr/local/apr指明apr路径
--with-apr-util=/usr/local/apr-util/指明apr-util路径
--enable-modules=most用most可以将一些不常用的,不在缺省常用模块中的模块编译进来.
--with-mpm=event工作模式
[root@www httpd-2.4.10]# make
[root@www httpd-2.4.10]# make install

注意:编译的时候如果出错,查看错误信息,如果提示缺少某包,直接用安装该包的devel包,编译完成不要忘记makemake install

  • httpd配置

修改配置文件添加pid路径

技术分享

在配置文件的任意位置添加PidFile /var/run/httpd.pid,如上图所示

httpd提供服务启动脚本

创建文件/etc/rc.d/init.d/httpd24并添加如下代码

#!/bin/bash
#chkconfig: 345 85 15
#
#httpd        Startup script for theApache HTTP Server
#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
 
# Sourcefunction library.
. /etc/rc.d/init.d/functions
 
if [ -f/etc/sysconfig/httpd ]; then
        . /etc/sysconfig/httpd
fi
 
# Starthttpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
 
# Thiswill prevent initlog from swallowing up a pass-phrase prompt if
# mod_sslneeds a pass-phrase from the user.
INITLOG_ARGS=""
 
# SetHTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# withthe thread-based "worker" MPM; BE WARNED that some modules may not
# workcorrectly with a thread-based MPM; notably PHP will refuse to start.
 
# Path tothe apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/httpd24/bin/apachectl
httpd=${HTTPD-/usr/local/httpd24/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 toconfiguration syntax error"
        failure $"not reloading $httpd dueto configuration syntax error"
    else
        killproc -p ${pidfile} $httpd -HUP
        RETVAL=$?
    fi
    echo
}
 
# See howwe were called.
case "$1" in
  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

如果安装路径不一样,则需要修改该启动脚本

给服务脚本执行权限:

[root@www httpd-2.4.10]# chmod +x/etc/rc.d/init.d/httpd24

chkconfig检查,支持chkconfig,但是没有加入,使用命令chkconfig–add httpd24

[root@www httpd-2.4.10]# chkconfig --listhttpd24
service httpd24 supports chkconfig, but isnot referenced in any runlevel (run ‘chkconfig --add httpd24‘)
[root@www httpd-2.4.10]# chkconfig –addhttpd24

现在就可以使用service httpd24 start启动httpd服务了

技术分享

启动成功,检查端口

技术分享

80端口已经监听,我们去物理机的浏览器测试

技术分享

现在http服务器已经可以工作了。


本文出自 “linux学习之路” 博客,请务必保留此出处http://linuxu.blog.51cto.com/9471357/1596987

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。