Linux下编译安装Apache httpd 2.4

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。当前Apache版本为2.4,本文主要描述基于CentOS 6.5以源码方式安装Apache httpd。

一、编译安装的优势

源码的编译安装一般由3个步骤组成:配置(configure),通常依赖gcc编译器,binutils,glibc。配置软件特性,检查编译环境,生成 Makefile文件编译(make)安装(make install)优势自定义软件功能优化编译参数,提高性能解决不必要的软件间依赖方便清理与卸载configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –-help输出详细的选项列表。
常用的选项
--prefix该选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share如果配置--prefix,如: ./configure --prefix=/usr/local/test则可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。

二、httpd的版本

版本:httpd-1.3httpd-2.0httpd-2.2httpd-2.4

三、httpd 2.4的新特性

1) MPM支持运行时装载--enable-mpms-shared=all --with-mpm=prefork|worker|event
2) 支持event MPM
3) 异步读写支持
4) 支持每模块及每目录分别使用不同的日志级别
5) 支持per-request(即支持<If>, <ElseIf>, and <Else>条件判断)
6) 增强版的表达式分析器;
7) 支持毫秒级keepalive timeout;
8) 基于FQDN(域名)的虚拟主机不再需要NameVirtualHost; 
9) 支持用户使用自定义变量; 新增一些模块:mod_proxy_fcgi, mod_ratelimit, mod_request, mod_remoteip修改了一些配置机制:不再支持使用order, allow, deny来实现基于IP的访问控制; 

四、编译安装httpd 2.4

1、依赖关系  httpd依赖于apr, apr-utilapr全称为apache portable runtime,能实现httpd跨平台运行httpd-2.4 依賴于1.4+及以上版本的aprapr-1.5.0.tar.bz2apr-util-1.5.3.tar.bz2httpd-2.4.9.tar.bz2pcre-devel包openssl-devel2、编译安装      # yum install gcc# yum install pcre-devel# tar xf apr-1.5.0.tar.bz2# cd apr-1.5.0# ./configure --prefix=/usr/local/apr   (--prefix指定apr安装的目录)# make# make  install# tar xf apr-util-1.5.3.tar.bz2# cd apr-util-1.5.3# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr# make && make install ###该项被漏掉,补充@20160714# tar xf httpd-2.4.9.tar.bz2以下为几个主要的配置项--sysconfdir=/etc/httpd24  指定配置文件路径
        --enable-so  启动模块动态装卸载
        --enable-ssl 编译ssl模块
        --enable-cgi 支持cgi机制(能够让静态web服务器能够解析动态请求的一个协议)
        --enable-rewrite  支持url重写     --Author : Leshami
        --with-zlib  支持数据包压缩       --Blog   : http://blog.csdn.net/leshami
        --with-pcre  支持正则表达式
        --with-apr=/usr/local/apr  指明依赖的apr所在目录
        --with-apr-util=/usr/local/apr-util/  指明依赖的apr-util所在的目录
        --enable-modules=most      启用的模块
        --enable-mpms-shared=all   以共享方式编译的模块
        --with-mpm=prefork         指明httpd的工作方式为prefork
# cd httpd-2.4.9# ./configure                           \--with-apr=/usr/local/apr           \
        --with-apr-util=/usr/local/apr-util \
        --prefix=/usr/local/apache \
        --sysconfdir=/etc/httpd24  \
        --enable-so                \
        --enable-ssl               \
        --enable-cgi               \
        --enable-rewrite           \
        --with-zlib                \
        --with-pcre                \
        --with-mpm=prefork         \
        --enable-modules=most      \
        --enable-mpms-shared=all   
# make # make install

五、配置http2.4启动及停止

1、修改端口号修改端口号使得与2.2版本使用不同的端口,可以同时运行,修改后如下# cat /etc/httpd24/httpd.conf |grep Listen |grep -v ^#Listen 80802、启动与停止# /usr/local/apache/bin/apachectl start# netstat -nltp|grep 80tcp        0      0 :::8080    :::*     LISTEN      17365/httpd  # /usr/local/apache/bin/apachectl statusNot FoundThe requested URL /server-status was not found on this server.通过修改httpd.conf,增加如下配置# grep server-stat /etc/httpd24/httpd.conf -A5<Location /server-status>SetHandler server-status#    Order deny,allow#    Deny from allAllow from 192.168.21.157 192.168.21.10</Location># /usr/local/apache/bin/apachectl restart# /usr/local/apache/bin/apachectl statusApache Server Status for localhost (via 127.0.0.1)Server Version: Apache/2.4.9 (Unix)Server MPM: prefork..........# /usr/local/apache/bin/apachectl stop3、配置自启动文件   可以通过复制2.2版本的启动文件,修改相关路径后将2.4版作为单独服务运行,如下注启动文件pid文件位置要配置成与/usr/local/apache/bin/apachectl -V看到的pid位置一致查看pid位置# /usr/local/apache/bin/apachectl -V|grep pid-D DEFAULT_PIDLOG="logs/httpd.pid"# cp /etc/init.d/httpd /etc/init.d/httpd24 # vi /etc/init.d/httpd24  # diff /etc/init.d/httpd /etc/init.d/httpd24 26,27c26,27< if [ -f /etc/sysconfig/httpd ]; then<         . /etc/sysconfig/httpd---> if [ -f /etc/httpd24 ]; then>         . /etc/httpd2442,46c42,46< apachectl=/usr/sbin/apachectl< httpd=${HTTPD-/usr/sbin/httpd}< prog=httpd< pidfile=${PIDFILE-/var/run/httpd/httpd.pid}< lockfile=${LOCKFILE-/var/lock/subsys/httpd}---> apachectl=/usr/local/apache/bin/apachectl> httpd=${HTTPD-/usr/local/apache/bin/httpd}> prog=httpd24> pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}> lockfile=${LOCKFILE-/var/lock/subsys/httpd24}# service httpd24 startStarting httpd24:                          [  OK  ]# service httpd24 statushttpd (pid  15641) is running...# netstat -nltp|grep 80tcp        0      0 :::80     :::*     LISTEN      15677/httpd   ###2.2版httpd       tcp        0      0 :::8080   :::*     LISTEN      15641/httpd   ###2.4版httpd可以通过复制apachectl文件生成服务脚本     # cp /usr/local/apache/bin/apachectl /etc/init.d/httpd249# service httpd249 start# service httpd249 statusELinks: Connection refused    ###该方式无法查看到状态     [root@orasrv1 bin]# netstat -nltp|grep 80tcp        0      0 :::8080     :::*     LISTEN      15999/httpd   最后将配置文件添加到服务,以下为http24为例# chkconfig --add httpd24# chkconfig httpd24 on

六、配置man手册

    vi /etc/man.configMANPATH /usr/local/apache/man

七、验证

# echo "This is a apached 2.4.9 version">>/usr/local/apache/htdocs/index.html    
# curl http://192.168.21.10:8080 
<html><body><h1>It works!</h1></body></html> 
This is a apached 2.4.9 version

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

选取硬币问题

有1元&#xff0c;5元&#xff0c;10元&#xff0c;50元&#xff0c;100元&#xff0c;500元的硬币各c0,c1,c2,c3,c4, c5枚 现在要使用这些硬币支付n元&#xff0c;问最少需要多少枚硬币&#xff0c;假设至少存在一种方案。 应该尽可能使用500元的&#xff0c;然后再使用100元的…

SAP OBYC自动记账的实例说明 +VALUE STRING

对Value String定义&#xff1a;定义了一系列的步骤优先顺序&#xff0c;每一个步骤都连接到不同的过账事务码&#xff0c;而这个顺序本身就称作价值串。价值串你可以看作是一种记账的规则&#xff0c;为物料移动或者发票校验包含了一系列的科目分配特征。并且物料移动的科目确…

C++ 继承解析

继承 1、概念&#xff1a; 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能。这样产生新的类&#xff0c;称派生类。继承呈现了面向对象程序设计的层次结构&#xff0c;体…

javascript window.open

翻译原文&#xff1a;open methodOpens a new window and loads the document specified by a given URL.Navigates the app window to the specified location.Syntaxvar retval window.open(url, name, features, replace);Parametersurl [in, optional] Type: String …

[傅里叶变换及其应用学习笔记] 九. 继续卷积的讨论

这份是本人的学习笔记&#xff0c;课程为网易公开课上的斯坦福大学公开课&#xff1a;傅里叶变换及其应用。 卷积在滤波中的应用 浑浊度&#xff08;Turbidity&#xff09;研究是关于测量水的清澈度的研究。大致方法是把光传感器放置到深水区域&#xff0c;然后测量光线的昏暗程…

C++多态相关关问题及虚表剖析

关于C多态的问题&#xff1a;&#xff08;基于Visual Studio 2012编译器&#xff09; 一、多态引入 1、对象的类型&#xff1a; &#xff08;1&#xff09; 静态的类型&#xff1a;对象声明时的类型&#xff0c;在编译的时候确定 &#xff08;2&#xff09; 动态的类型&…

C++调用约定

<div class"markdown_views"><p>有一定C开发经验的人一定对”__cdecl、__stdcall、__fastcall”肯定不陌生吧&#xff01;但你真正理解了吗&#xff1f;是的&#xff0c;我曾在这采了无数个坑&#xff0c;栽了无数个跟头&#xff0c;终于忍无可忍要把它总…

CSS中的特殊的选择器

/*表示div盒子中的P标签*/ div P{} /*表示div盒子中除第一个P之外的都要添加样式*/ div pp{} /*表示div盒子中从第三个p开始都要添加样式*/转载于:https://www.cnblogs.com/Dream-Seeker/p/4454325.html

添加文字和水印

1.加文字-(UIImage *)addText:(UIImage *)img text:(NSString *)text1{//get image width and heightint w img.size.width;int h img.size.height;CGColorSpaceRef colorSpace CGColorSpaceCreateDeviceRGB();//create a graphic context with CGBitmapContextCreateCGCont…

C++动态绑定及返回类型协变

C多态之动态绑定&#xff1a; 1、概念&#xff1a;在程序执行期间(非编译期)判断所引用对象的实际类型&#xff0c;根据其实际类型调用相应的方法。 使用virtual关键字修饰类的成员函数时&#xff0c;指明该函数为虚函数&#xff0c;派生类需要重新实现&#xff0c;编译器将实…

使用ucontext组件实现的coroutine代码分析

coroutine一般翻译过来就是协程&#xff0c;类似于线程可以切换&#xff0c;而跟线程是由操作系统调度器来实现切换不一样&#xff0c;协程由用户程序自己调度进行切换。我以前也看过协程相关的内容&#xff0c;但没有自己去实现过。最近搞OpenStack&#xff0c;OpenStack各个模…

C++模板剖析:函数模板、类模板解析

C中关于模板&泛型编程问题&#xff1a; 问题引入&#xff1a;何编写一个通用加法函数&#xff1f; &#xff08;1&#xff09;使用函数重载&#xff0c;针对每个所需相同行为的不同类型重新实现它 int Add(const int &_iLeft, const int&_iRight) { return (_iL…

Android Studio 1.1的安装和遇到的坑

Google的Android Studio 出1.0稳定版本也有很久的时间了&#xff0c;一直喜欢Jetbrains公司的IDE&#xff0c;不同语言的IDE操作习惯都比较统一。 而Android Studio 是基于IntelliJ IDEA的社区版开发的 &#xff0c;怎么也要尝尝鲜才行。 今天安装了下&#xff0c;被几个小坑卡…

Linux:Access time、 Modify time 、Change time 和 find 命令使用解析

一、Access time 、Modify time 、Change time 1、含义&#xff1a; Access&#xff1a;是指“访问时间” 对于文件&#xff0c;用编辑器打开file&#xff0c;或使用cat more less grep sed 等等命令读取文件内容&#xff0c;以及使用file cp命令操作文件&#xff0c;或执行…

[HAOI2015]T2

【题目描述】 有一棵点数为N的树&#xff0c;以点1为根&#xff0c;且树点有边权。然后有M个操作&#xff0c;分为三种&#xff1a; 操作1&#xff1a;把某个节点x的点权增加a。 操作2&#xff1a;把某个节点x为根的子树中所有点的点权都增加a。 操作3&#xff1a;询问某个节点…

BestCoder Round #39 解题报告

现场只做出前三题w 不过不管怎样这既是第一次认真打BC 又是第一次体验用在线编译器调代码 订正最后一题花了今天一整个下午&#xff08;呜呜 收获还是比较大的^_^ Delete wld有n个数(a1,a2,...,an)&#xff0c;他希望进行k次删除一个数的操作&#xff0c;使得最后剩下的n−k个数…

linux :vim 实现命令行下输出进度条

1、 进度条原理&#xff1a; 进度条的的动态增长是利用人的视觉短暂停留效果的&#xff0c;不断从输出缓冲区刷新出相同的内容&#xff0c;在肉眼看来进度条在不断的增长。 在显示器上先输出[# ][%1] 刷新一次之后&#xff0c; …

***jquery选择器 之 获取父级元素、同级元素、子元素

一、获取父级元素1、 parent([expr]): 获取指定元素的所有父级元素 <div id"par_div"><a id"href_fir" href"#">href_fir</a><a id"href_sec" href"#">href_sec</a><a id"href_thr&q…

Sql Server字符串函数

字符串函数用于对字符和二进制字符进行各种操作 1.ASCII()函数 ASCII(character_expression)函数用于返回字符串表达式中最左侧的ASCII代码值。参数character_expression必须是一个char或varchar类型的字符串表达式。 eg: select ASCII(s),ASCII(sql),ASCII(1);执行结果如图:字…