Loading... <h4 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1.13rem">目录</h4> <p>一、Apache的工作模式</p> <blockquote><p>1、简介</p> <p>2、比较</p> </blockquote> <p>二、CentOS6.x上安装Apache</p> <blockquote><p>(一)rpm安装apache</p> <p>(二)编译安装apache2.2</p> </blockquote> <blockquote><blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"> <p>1、安装编译环境</p> </blockquote> <blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"><p>2、下载解压依赖包</p> </blockquote> <blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"><p>3、安装apache2.2</p> </blockquote> <blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"><p>4、测试apache2.2</p> </blockquote> <blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"><p>5、查看apache相关信息</p> </blockquote> <blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"><p>6、配置程序运行环境</p> </blockquote> <blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"><p>7、导出库文件</p> </blockquote> <blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"><p>8、导出头文件</p> </blockquote> <blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"><p>9、导出手册</p> </blockquote> <blockquote style="margin: 0px 0px 0px 40px;padding: 0px;border: none"><p>10、将Apache添加到启动服务</p> </blockquote> </blockquote> <p> (三) 编译安装Apache2.4</p> <blockquote><p> 1、编译安装apr</p> <p> 2、编译安装apr-util</p> <p> 3、安装需要的依赖包</p> <p> 4、编译安装Apache2.4</p> <p> 5、安装后配置</p> </blockquote> <p><span style="line-height: 1.6"><br /></span></p> <hr /> <h3><span style="line-height: 1.6">一、Apache的工作模式</span></h3> <p><span style="line-height: 1.6">Apache HTTP服务器被设计为一个强大的、灵活的能够在多种平台以及不同环境下工作的服务器。Apache HTTP服务器被设计为一个强大的、灵活的能够在多种平台以及不同环境下工作的服务器。这种模块化的设计就叫做“多路处理模块”(Multi-Processing Modules,MPMs),也叫做工作模式。<br /></span><span style="line-height: 1.6">在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择,它们会影响到apache的速度和可伸缩性。</span></p> <h4 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1.13rem"><span style="line-height: 1.6">1、简介</span></h4> <h5 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1rem"><span style="line-height: 1.6">Prefork MPM:</span></h5> <p><span style="line-height: 1.6">prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接,<span style="color:#ff0000">效率高,但内存占用量比较大</span>。</span></p> <p><span style="line-height: 1.6"><br /></span></p> <p>这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。</p> <p></p> <p><span style="line-height: 1.6">这个MPM具有很强的自我调节能力,只需要很少的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小。</span></p> <p></p> <h5 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1rem"><span style="font-size: 1rem;font-weight: bold;line-height: 1.6">Worker MPM:</span></h5> <p>worker使用多个子进程,每个子进程有多个线程,每个线程在某个确定的时间只能维持一个连接,<span style="color:#ff0000">内存占用量比较小,适合高流量的http服务器</span>。缺点是假如一个线程崩溃,整个进程就会连同其任何线程一起”死掉”,所以要保证一个程式在运行时必须被系统识别为”每个线程都是安全的”。</p> <p></p> <p>此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。</p> <p></p> <p>每个进程可以拥有的线程数量是固定的。服务器会根据负载情况增加或减少进程数量。一个单独的控制进程(父进程)负责子进程的建立。每个子进程可以建立ThreadsPerChild数量的服务线程和一个监听线程,该监听线程监听接入请求并将其传递给服务线程处理和应答。</p> <p></p> <p>不管是Worker模式或是Prefork模式,Apache总是试图保持一些备用的(spare)或者是空闲的子进程(空闲的服务线程池)用于迎接即将到来的请求。这样客户端就不需要在得到服务前等候子进程的产生。</p> <p></p> <h5 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1rem">Event MPM:</h5> <p>以上两种稳定的MPM方式在非常繁忙的服务器应用下都有些不足。尽管HTTP的Keepalive方式能减少TCP连接数量和网络负载,但是 Keepalive需要和服务进程或者线程绑定,这就导致一个繁忙的服务器会耗光所有的线程。 Event MPM是解决这个问题的一种新模型,它把服务进程从连接中分离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限 制,此时Event MPM方式是最有效的。一个以Worker MPM方式工作的繁忙服务器能够承受每秒好几万次的访问量(例如在大型新闻服务站点的高峰时),而Event MPM可以用来处理更高负载。值得注意的是,Event MPM不能在安全HTTP(HTTPS)访问下工作。</p> <p></p> <h5 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1rem">ITK MPM:</h5> <p></p> <p>Linux自身提供了很强的权限系统,最简单的方法就是使用这个系统实现不同站点之间的权限划分,但apache所有进程往往都是运行在同一用户下,这也就是问题的根源,于是有了apache itk,在debian 里包名叫做apache2-mpm-itk 。和prefork 和 worker 一样是一个mpm(多路处理器),实际上itk 是基于prefork的,为每个虚拟主机prefork出来的子进程可以以不同的用户身份运行。apache UMASK变量设置为027,对应ftp的Umask 也设置为027,这样程序生成或后上传的文件也只能被本站点所属用户修改,只能被同组人查看,实现了隔离的较果。</p> <p></p> <p>这种不是Apache的MPMs,只是Linux某种发行版对Apache的改进。</p> <p></p> <h4 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1.13rem">2、比较</h4> <p>1)prefork和worker模式的比较</p> <p>prefork模式使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。</p> <p> </p> <p>worker模式使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。但worker MPM也由不完善的地方,如果一个线程崩溃,整个进程就会连同其所有线程一起"死掉".由于线程共享内存空间,所以一个程序在运行时必须被系统识别为"每个线程都是安全的"。</p> <p> </p> <p>总的来说,prefork方式速度要稍高于worker,然而它需要的cpu和memory资源也稍多于woker。</p> <p> </p> <p>2)对于Event 模式,apache给出了以下警告:This MPM is experimental, so it may or may not work as expected .</p> <p>这种MPM目前处于试验状态,他可能不能按照预期的那样工作。这是httpd2.2版本的情况,在httpd2.4版本后event模式已经很稳定了,可以用于生产环境。</p> <p> </p> <p><span style="color:#ff0000">小结:</span></p> <p>prefork:多进程模型,每个进程响应一个请求;一个主进程:负责生成n个子进程,子进程也称为工作进程,每个子进程处理一个用户请求;即便没有用户请求,也会预先生成多个空闲进程,随时等待请求到达;最大不会超过1024个;</p> <p></p> <p>worker:多线程模型,每个线程响应一个请求;一个主进程:生成多个子进程,每个子进程负责生个多个线程,每个线程响应一个请求;m进程,n线程:m*n 。</p> <p></p> <p>event:事件驱动模型,每个线程响应n个请求;一个主进程:生成m个子进程,每个进程直接n个请求;m*n 。</p> <p></p> <p>httpd-2.2: event为测试使用</p> <p>httpd-.24:event可生产使用</p> <p></p> <h3 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1.2rem">二、CentOS6.x上安装Apache2.2</h3> <p><span style="line-height: 1.6">环境:CentOS6.7,Minimal安装。</span></p> <h4 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1.13rem"><span style="line-height: 1.6">(一)rpm安装apache</span></h4> <p><span style="line-height: 1.6">1、使用yum命令安装Apache </span></p> <pre class="brush:bash;toolbar:false"># yum -y install httpd</pre> <p></p> <p>2、启动Apache</p> <pre class="prettyprint linenums prettyprinted"># service httpd start</pre> <p></p> <p><span style="line-height: 1.6">3、设置开机启动Apache </span></p> <pre class="prettyprint linenums prettyprinted"># chkconfig --levels 235 httpd on</pre> <p></p> <p><span style="line-height: 1.6">4、如果在浏览器无法浏览,请关闭iptables防火墙。</span></p> <pre class="prettyprint linenums prettyprinted"># service iptables stop //关闭命令 # chkconfig iptables off //永久关闭防火墙 # service iptables status //查看防火墙状态</pre> <p></p> <p><span style="line-height: 1.6">5、如果要安装Apache其它扩展,参考下面命令。</span></p> <pre class="prettyprint linenums prettyprinted"># yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql</pre> <p></p> <p><span style="line-height: 1.6">rpm安装的Apache,默认用的是prefork模式。</span></p> <p><span style="line-height: 1.6"><br /></span></p> <p style="text-align:center"><span style="text-decoration: underline"><img alt="01查看rpm安装的Apache的模式.png" src="//cto.wang/usr/uploads/2016/07/20160703184337-32.png" title="1464925436368260.png" /></span></p> <p style="text-align: center">图1 查看rpm安装的Apache的模式<span style="text-decoration:underline"><br /></span></p> <p><span style="line-height: 1.6"><br /></span></p> <h4 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1.13rem"><span style="line-height: 1.6">(二)编译安装apache2.2</span></h4> <p>1、安装编译环境。</p> <p>查看现有的编译环境。</p> <p></p> <p style="text-align: center"><img alt="02查看编译环境.png" src="//cto.wang/usr/uploads/2016/07/20160703184337-37.png" title="1464925480492872.png" /></p> <p style="text-align: center">图2 查看是否安装编译环境</p> <p></p> <p></p> <p>安装编译环境:</p> <pre class="brush:bash;toolbar:false;"> # yum install "Development tools" "Server Platform Development" -y</pre> <p></p> <p>2、下载解压依赖包</p> <p>Apache的编译安装需要依赖apr(Apache Portable Runtime )和apr-util,因此需要先安装此两个依赖包。Apache2.2版本需要apr/apr-util 1.2以上版本,Apache2.4版本需要apr/apr-utli 1.4以上版本。</p> <p></p> <p>CentOS6.7在安装编译环境时已经安装了apr-1.3.9和apr-util-1.3.9,所以在CentOS6.7上安装Apache2.2版本,不需要再安装apr和apr-util。如果在CentOS6.7上编译安装Apache2.4版本,则需要下载apr/apr-utli 1.4以上版本。查找及下载方法见下。</p> <p></p> <p>(1)查找源码包</p> <p></p> <p style="text-align:center"><img alt="03查找并获取源码包下载地址.png" src="//cto.wang/usr/uploads/2016/07/20160703184338-15.png" title="1464925548890467.png" /></p> <p style="text-align: center">图3 查找并获取源码包下载地址</p> <p></p> <p>(2)下载源码包。</p> <p></p> <p style="text-align:center"><img alt="04下载源码包.png" src="//cto.wang/usr/uploads/2016/07/20160703184339-94.png" title="1464925575955578.png" /></p> <p style="text-align: center">图4 下载源码包</p> <p></p> <p></p> <p>(3)解压安装依赖包</p> <p> </p> <p><span style="line-height: 1.6">安装apr。</span></p> <pre class="prettyprint linenums prettyprinted"># tar -xf apr-1.5.2.tar.bz2 # cd apr-1.5.2 # ./configure --prefix=/usr/local/apr # make && make install</pre> <p></p> <p>安装apr-util。</p> <pre class="prettyprint linenums prettyprinted"># tar -xf apr-util-1.5.4.tar.bz2 # cd apr-util-1.5.4 # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr # make && make install</pre> <p></p> <p>(4)安装其它依赖包</p> <p>如果编译安装Apache时要用到pcre,则需要pcre-devel依赖包。</p> <pre class="prettyprint linenums prettyprinted"># yum install pcre-devel -y</pre> <p></p> <p>其它额外功能需要依赖包,按照上述方法安装即可。</p> <p>3、安装Apache源码包</p> <pre class="brush:bash;toolbar:false;"># wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.2.31.tar.bz2 # tar -xf httpd-2.2.31.tar.bz2# cd httpd-2.2.31 # ./configure --prefix=/usr/local/apache22 --sysconfdir=/usr/local/httpd22 \ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util \ --with-zlib --with-pcre --with-mpm=prefork --enable-so --enable-ssl \ --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all # make -j 4 && make install</pre> <p></p> <p>4、测试Apache</p> <p><span style="line-height: 1.6">(1)测试主配置文件语法</span></p> <pre class="prettyprint linenums prettyprinted"># cd /usr/local/apache22 # bin/apache22/bin/apachectl -t</pre> <p></p> <p style="text-align:center"><img alt="05测试主配置文件语法.png" src="//cto.wang/usr/uploads/2016/07/20160703184340-71.png" title="1464925607947482.png" /></p> <p style="text-align: center">图5 测试主配置文件语法</p> <p></p> <p>测试Apache主配置文件httpd.conf是否有语法错误,出现”Syntax OK“表示配置文件无问题。</p> <p> </p> <p>(2)查看监听端口</p> <pre class="prettyprint linenums prettyprinted"># netstat -tan</pre> <p style="text-align:center"><img alt="06查看监听端口.png" src="//cto.wang/usr/uploads/2016/07/20160703184340-37.png" title="1464925642113376.png" /></p> <p style="text-align: center">图6 查看监听端口</p> <p></p> <p>(3)关闭防火墙</p> <p> </p> <p>apache启动完毕后,我们来查看下是否可访问。</p> <p></p> <p></p> <p style="text-align:center"><img alt="07wget测试网页.png" src="//cto.wang/usr/uploads/2016/07/20160703184341-76.png" title="1464925666500306.png" /></p> <p style="text-align: center">图7 wget测试网页</p> <p></p> <p>还可以尝试用浏览器访问http://192.168.163.12,如果无法访问,关闭防火墙。</p> <p></p> <p style="text-align:center"><img alt="08关闭防火墙.png" src="//cto.wang/usr/uploads/2016/07/20160703184341-8.png" title="1464925691173205.png" /></p> <p style="text-align: center">图8 关闭防火墙</p> <p></p> <p>5、查看Apache相关信息</p> <p></p> <p style="text-align:center"><img alt="09查看Apache相关信息.png" src="//cto.wang/usr/uploads/2016/07/20160703184342-68.png" title="1464925726935886.png" /></p> <p style="text-align: center">图9 查看Apache相关信息</p> <p></p> <p></p> <p>6、配置程序运行环境</p> <p> </p> <p>每次用httpd或者apachectl程序时,都要在前面输入一大段路径,非常不方便。用”echo $PATH“查看环境变量时,”/usr/local/apache22/bin“路径没有配置在环境变量中。将此路径添加到PATH环境变量中,以后调用httpd/apachectl就不需要输入路径了。</p> <p></p> <p style="text-align:center"><img alt="10配置程序运行环境.png" src="//cto.wang/usr/uploads/2016/07/20160703184343-84.png" title="1464925763746729.png" /></p> <p style="text-align: center">图10 配置程序运行环境</p> <p></p> <p></p> <p><span style="line-height: 1.6">这种方式的export只对当前shell有效,要想永久有效,执行以下步骤。</span></p> <p>(1)编辑生成文件</p> <pre class="prettyprint linenums prettyprinted"># vim /etc/profile.d/httpd.sh</pre> <p></p> <p>在此文件中写入"export PATH=/usr/local/apache22/bin:$PATH",保存退出。</p> <p></p> <p>(2)执行</p> <pre class="prettyprint linenums prettyprinted"># source /etc/profile.d/httpd.sh</pre> <p></p> <p>或者</p> <pre class="prettyprint linenums prettyprinted"># . /etc/profile.d/httpd.sh</pre> <p></p> <p style="text-align:center"><img alt="11导入路径到环境变量.png" src="//cto.wang/usr/uploads/2016/07/20160703184343-90.png" title="1464925792122217.png" /></p> <p style="text-align: center">图11 导入路径到环境变量</p> <p></p> <p></p> <p>7、导入库文件</p> <p>一般应用程序运行都依赖于标准库里面的文件,Linux系统会在特定路径下为应用查找所依赖的库文件:/lib64, /lib, /usr/lib64, /usr/lib, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64 。某些应用程序需要的库文件标准库中没有,那么就需要添加应用程序自身提供的库文件到系统搜索路径中。那么就要添加修改配置文件,让系统搜索到此库文件。</p> <p></p> <p>添加步骤:</p> <p>(1) 编辑添加/etc/ld.so.conf.d/*.conf文件,*表示的文件名自己取。添加新库文件搜索路径至此文件中,每行一个。</p> <p>(2) 执行ldconfig命令,重新生成库映射缓存ld.so.conf 。</p> <p></p> <p style="text-align:center"><img alt="12导入库文件.png" src="//cto.wang/usr/uploads/2016/07/20160703184343-83.png" title="1464925837180297.png" /></p> <p style="text-align: center"><span style="text-align: left;line-height: 1.6">图12 导入库文件</span></p> <p></p> <p></p> <p>ldconfig命令用法看手册</p> <pre class="prettyprint linenums prettyprinted"># man ldconfig</pre> <p></p> <p><span style="line-height: 1.6">8、导出头文件</span></p> <p>方法一:</p> <p>复制所有新生成的头文件(/usr/local/apache22/include目录下的所有文件)至/usr/include目录中(不推荐);</p> <pre class="prettyprint linenums prettyprinted"># cp /usr/local/apache22/include/* /usr/include/</pre> <p></p> <p>方法二:创建链接</p> <p>连接源目录到目标文件</p> <pre class="prettyprint linenums prettyprinted"># ln -sv /usr/local/apache22/include /usr/include/httpd</pre> <p></p> <p>连接源文件到目标目录中</p> <pre class="prettyprint linenums prettyprinted"># ln -sv /usr/local/apache22/include/* /usr/include/</pre> <p></p> <p>9、导出手册</p> <p>Linux会到特定目录下查找用户需要使用命令的手册,系统是依据“/etc/man.config”配置文件中“MANPATH”指令指向的手册路径搜索的。要让让系统能够搜索到apache手册路径,我们就需要编辑此配置文件。</p> <p></p> <p>在此文件新增MANPATH指令,并指向新的命令手册路径;</p> <p></p> <p>或者,<span style="line-height: 1.6">在man命令执行时使用-M选项显式指定手册而查找路径即可;</span></p> <p><span style="line-height: 1.6"><br /></span></p> <p style="text-align:center"><img alt="13导出手册.png" src="//cto.wang/usr/uploads/2016/07/20160703184347-64.png" title="1464925888726589.png" /></p> <p style="text-align: center">图13 导出手册</p> <p></p> <p></p> <p>10、将Apache添加到启动服务</p> <p>(1)修改httpd的主配置文件,设置其Pid文件的路径。</p> <p>编辑/etc/httpd/httpd.conf,添加如下行即可:</p> <pre class="prettyprint linenums prettyprinted">PidFile "/var/run/httpd.pid"</pre> <p></p> <p>(2)提供SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:</p> <pre class="prettyprint linenums prettyprinted">#!/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/apache22/bin/apachectl httpd=${HTTPD-/usr/local/apache22/bin/httpd} prog=httpd pidfile=${PIDFILE-/var/run/httpd22.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd22} 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</pre> <p></p> <p>将标记的地方改为你的apache路径。</p> <p>(3)而后为此脚本赋予执行权限:</p> <pre class="prettyprint linenums prettyprinted"># chmod +x /etc/rc.d/init.d/httpd</pre> <p></p> <p>(4)加入服务列表:</p> <pre class="prettyprint linenums prettyprinted"># chkconfig --list # chkconfig --add httpd # chkconfig --list | grep httpd</pre> <p></p> <p>这个时候输出的结果:</p> <pre class="prettyprint linenums prettyprinted">httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off</pre> <p></p> <p>此时0~6均为off,则说明httpd服务不会在系统启动的时候自动启动。我们输入chkconfig httpd on后,再次检查输出结果变为:</p> <pre class="prettyprint linenums prettyprinted">httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off</pre> <p></p> <p>这个时候2~5都是on,就表明会自动启动了。</p> <p>接下来就可以启动服务进行测试了。</p> <p></p> <h4 style="margin: 1.33rem 0px 0.667rem;padding: 0px;font-weight: bold;font-size: 1.13rem">(三)编译安装Apache2.4</h4> <p> </p> <p>Apache2.4依赖apr/apr-util 1.4及以上版本,所以在CentOS6.7上安装Apache2.4,要升级或安装较新的apr/apr-util版本。安装步骤参看前面。</p> <p> </p> <p>1、编译安装apr</p> <pre class="prettyprint linenums prettyprinted"># ./configure --prefix=/usr/local/apr # make && make install</pre> <p></p> <p>2、编译安装apr-util</p> <pre class="prettyprint linenums prettyprinted"># ./configure --prefix=/usr/local/apr-util --with=/usr/local/apr # make && make install</pre> <p></p> <p>3、安装需要的依赖包</p> <p>前面安装编译环境不会自动安装的开发组件,需要手工安装下。</p> <pre class="brush:bash;toolbar:false;"># yum install pcre-devel -y</pre> <p></p> <p>4、编译安装Apache2.4</p> <p>编译安装前,卸载已安装的rpm安装包。</p> <pre class="brush:ps;toolbar:false;"># yum remove httpd</pre> <p></p> <p>卸载以前编译安装的Apache2.2。</p> <pre class="prettyprint linenums prettyprinted"># rm -rf /usr/local/apache22 # rm -rf /usr/local/src/apache-2.2.31</pre> <p></p> <p>路径导出文件、库导出文件、头文件导出文件、手册导出文件等可以删除,也可以等编译安装完Apache2.4后直接修改。</p> <p>开始编译安装Apache2.4</p> <pre class="brush:bash;toolbar:false;"># groupadd -r apache # useradd -r -g apache apahce # ./configure --prefix=/usr/local/apache24 \ --enable-modules=most \ --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=prefork # make && make install</pre> <p></p> <p>5、安装后配置</p> <p>编译安装完毕后,导出二进制路径、导出库文件、导出头文件、导出手册和添加启动服务等设置,与编译安装Apache2.2一样,只是把对应的路径改为Apache2.4的路径。</p> <p></p> <p></p> <p></p> <p></p> <p></p> <p><br class="Apple-interchange-newline" /></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信