分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

CentOS6上编译安装httpd2.4

发布时间:2023-09-06 01:29责任编辑:顾先生关键词:http编译
在CentOS6上无法直接使用rpm包安装httpd2.4,因为httpd2.4依赖于:

  apr-1.4及以上版本

  apr-util-1.4及以上版本

而直接升级apr和apr-util会覆盖直接版本的程序,影响其他程序的依赖关系,所以一般使用编译安装的方式安装apr和apr-util,然后编译安装httpd2.4。


具体步骤如下:

1、准备安装环境和源码包

[root@localhost ~] # yum groupinstall "Development Tools" "Server Platform Development" -y[root@localhost ~] # yum install pcre-devel -y

下载源码包,这里我用到的是:

apr-1.5.0.tar.bz2

apr-util-1.5.3.tar.bz2

httpd.2.4.9.tar.bz2

2、编译安装apr和apr-util

[root@localhost ~] # tar xf apr-1.5.0.tar.bz2[root@localhost ~] # cd apr-1.5.0[root@localhost apr-1.5.0 ] # ./configure --prefix=/usr/local/apr   //  为避免影响原有版本apr,将新版本apr安装到新的目录/usr/local/apr,--prefix选项为指定安装目录[root@localhost apr-1.5.0 ] # make && make install[root@localhost ~] # tar xf apr-util-1.5.3.tar.bz2[root@localhost ~] # cd apr-util-1.5.3[root@localhost apr-util-1.5.3] # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr//  同样将apr-util安装到新的目录,--with-apr指定apr所在目录[root@localhost apr-util-1.5.3 ] # make && make install

3、编译安装httpd2.4

[root@localhost ~] # tar xf httpd-2.4.9.tar.bz2[root@localhost ~] # cd httpd-2.4.9[root@localhost httpd-2.4.9 ] # ./configure --prefix=/usr/local/apache --sysconf=/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=prefork// --prefix=/usr/local/apache :安装位置// -sysconf=/etc/httpd24 :配置文件位置// --enable-so :支持DSO动态装载模块// --enable-ssl :支持SSL/TLS,可实现https协议访问,需要安装openssl-devel// --enable-cgi :支持CGI脚本// --enable-rewrite :支持URL重写// --with-zlib :使用指定的zlib压缩库,不指定路径会自动寻找// --with-pcre :使用指定的pcre库,增强的正则表达式分析工具;不指定路径会自动寻找,需要安装pcre-devel// --with-apr=/usr/local/apr :指定依赖的apr程序安装位置// --with-apr-util=/usr/local/apr-util :指定依赖的apr-util程序安装位置// --enable-modules=most :支持动态启用模块:all:所有;most:常用// --enable-mpms-shared=all :编译并共享的模块// --with-mpm=event :默认启用的mpm模块;可选项有prefork|worker|event[root@localhost httpd-2.4.9 ] # make && make install

4、安装后配置

(1)添加环境变量,并重读文件

因为是编译安装的httpd,所以PATH环境变量里并没有我们所安装的目录,需要手动添加

[root@localhost ~] # vim /etc/profile.d/httpd24.shexport PATH=/usr/local/apache/bin:$PATH[root@localhost ~] # source /etc/profile.d/httpd24.sh

添加完成后,执行httpd命令时,就可以正常使用,如果不添加到环境变量,则需要在绝对路径下使用,十分不便。

(2)导出头文件

[root@localhost ~] # ln -sv /usr/local/apache/include /usr/include/httpd

不需要复制,创建软链接即可

(3)导出man手册

[root@localhost ~] # vim /etc/man.confg

(4)编写服务脚本

[root@localhost ~]# vim /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/functionsif [ -f /etc/sysconfig/httpd ]; then        . /etc/sysconfig/httpdfi# 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/apachectlhttpd=${HTTPD-/usr/sbin/httpd}prog=httpdpidfile=${PIDFILE-/var/run/httpd/httpd24.pid}lockfile=${LOCKFILE-/var/lock/subsys/httpd24}RETVAL=0STOP_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/nullif [[ $? = 0 ]]; thenecho -n $"Stopping $prog: "killproc -p ${pidfile} -d ${STOP_TIMEOUT} $httpdelseecho -n $"Stopping $prog: "successfiRETVAL=$?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} $httpdRETVAL=$?;;  restart)stopstart;;  condrestart|try-restart)if status -p ${pidfile} $httpd >&/dev/null; thenstopstartfi;;  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=2esacexit $RETVA

编写完服务脚本后,需要将服务脚本设为开机启动

[root@localhost ~]# chkconfig --add httpd[root@localhost ~]# chkconfig httpd on




写的比较潦草,如有遗漏错误和争议之处,欢迎大家的批评指正和讨论,谢谢。

CentOS6上编译安装httpd2.4

原文地址:http://blog.51cto.com/11367661/2047998

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved