Centos 6中编译配置httpd2.4的多种方法详解
<p><span><strong>前言</strong></span></p>
<p>
我们使用linux的过程中,一定会用到httpd这个服务,在centos7上,默认安装的httpd就是2.4版本,大家都知道,2.4版本相对之前的版本已经做了改进,用起来更加方便,但是我们的centos6上,默认安装的版本是2.2,那么,如果我们想要在centos6上安装httpd2.4版本的话,我们要如何做呢?</p>
<p>
本文中,小编会给大家介绍两种方法,来实现在centos6上编译安装httpd2.4版本。</p>
<p>
<span><strong>方法一 分别编译法</strong></span></p>
<p>
1、下载源码并解压缩</p>
<p>
我们可以使用<code>yum info httpd</code>和<code>yum info apr</code>来查看这两个服务的官网,然后我们去官网下载最新的稳定版本:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos 6中编译配置httpd2.4的多种方法详解" alt="Centos 6中编译配置httpd2.4的多种方法详解" src="https://zhuji.jb51.net/uploads/img/202305/5dc9515e55812427634990a96f0b1ea2.jpg"></p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos 6中编译配置httpd2.4的多种方法详解" alt="Centos 6中编译配置httpd2.4的多种方法详解" src="https://zhuji.jb51.net/uploads/img/202305/80fa7e00247fcf99075928326c132104.jpg"></p>
<p>
下面附上官网地址:</p>
<p>
httpd官网:</p>
<p>
apr官网:</p>
<p>
我们可以去官网下载最新的稳定版本,这里,小编下载的是apr-1.6.2.tar.gz,apr-util-1.6.0.tar.gz,httpd-2.4.28.tar.bz2,接下来的实验,就以小编下载的版本为示范,给大家演示如何安装。</p>
<p>
我们使用rz命令,将我们下载好的源码包上传至我们的centos6虚拟机,我们可以查看一下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_805895">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ll</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">total 8004</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">-rw-r--r-- 1 root root 1071074 sep 29 12:27 apr-1.6.2.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">-rw-r--r-- 1 root root 565507 sep 29 12:27 apr-util-1.6.0.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">-rw-r--r-- 1 root root 6553163 oct 15 12:35 httpd-2.4.28.</code><code class="bash functions">tar</code><code class="bash plain">.bz2</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
接下来就是解压缩:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_415359">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">tar</code> <code class="bash plain">xvf httpd-2.4.28.</code><code class="bash functions">tar</code><code class="bash plain">.bz2</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">tar</code> <code class="bash plain">xvf apr-util-1.6.0.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">tar</code> <code class="bash plain">xvf apr-1.6.2.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
解压缩以后,我们照例查看一下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_268477">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ls</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">apr-1.6.2 apr-1.6.2.</code><code class="bash functions">tar</code><code class="bash plain">.gz apr-util-1.6.0 </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">apr-util-1.6.0.</code><code class="bash functions">tar</code><code class="bash plain">.gz httpd-2.4.28 httpd-2.4.28.</code><code class="bash functions">tar</code><code class="bash plain">.bz2</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
我们发现,现在已经有了三个文件夹,该步骤完成。</p>
<p>
<strong>2、安装所依赖的包组</strong></p>
<p>
在编译安装开始之前,我们要先把所依赖的包组安装上,不然在接下来的编译安装过程中会出错。</p>
<p>
安装命令如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_713817">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">yum groupinstall </code><code class="bash string">"development tools"</code> <code class="bash plain">-y</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">pcre-devel -y</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">openssl-devel -y</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">expat-devel -y</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
安装成功后,我们就可以对apr的分别编译了。</p>
<p>
<strong>3、编译安装apr-1.6.2</strong></p>
<p>
我们对apr-1.6.2进行编译安装,首先要保证我们所有的操作都是在该文件夹内进行的!</p>
<p>
首先,我们进入目录</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_528352">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cd apr-1.6.2/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># ls</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">apr-config.</code><code class="bash keyword">in</code> <code class="bash plain">cmakelists.txt libapr.mak poll</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">apr.dep config.layout libapr.rc random</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">apr.dsp configure license readme</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">apr.dsw configure.</code><code class="bash keyword">in</code> <code class="bash plain">locks readme.cmake</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">apr.mak docs makefile.</code><code class="bash keyword">in</code> <code class="bash plain">shmem</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">apr.pc.</code><code class="bash keyword">in</code> <code class="bash plain">dso makefile.win strings</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">apr.spec emacs-mode memory support</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">atomic encoding misc tables</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">build file_io mmap </code><code class="bash functions">test</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">buildconf helpers network_io threadproc</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">build.conf include notice </code><code class="bash functions">time</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">build-outputs.mk libapr.dep nwgnumakefile tools</code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain">changes libapr.dsp </code><code class="bash functions">passwd</code> <code class="bash plain">user</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
然后我们对其进行编译安装即可:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_425995">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ./configure --prefix=/app/apr</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
编译的命令很简单,只需要指定一个目录,要记住这个目录0.0,接下来我们还会用到。</p>
<p>
编译安装完成后,我们来查看一下/app目录,看是不是已经生成了apr这个文件夹:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_466613">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ls /app/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">apr</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
可以看到已经有了这个文件夹,所以这一步骤我们完成。</p>
<p>
<strong>4、编译安装apr-util-1.6.0</strong></p>
<p>
跟上一步骤很是相似,但是有一个需要注意的地方就是,编译apr-util-1.6.0的时候,需要依赖apr-1.6.2包,所以还要跟上apr-1.6.2的目录。下面我们就来说说具体操作。</p>
<p>
首先,我们还是也要进入该目录下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_705972">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cd apr-util-1.6.0</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># ls</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">aprutil.dep configure.</code><code class="bash keyword">in</code> <code class="bash plain">makefile.win</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">aprutil.dsp crypto memcache</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">aprutil.dsw dbd misc</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">aprutil.mak dbm notice</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">apr-util.pc.</code><code class="bash keyword">in</code> <code class="bash plain">docs nwgnumakefile</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">apr-util.spec encoding readme</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">apu-config.</code><code class="bash keyword">in</code> <code class="bash plain">export_vars.sh.</code><code class="bash keyword">in</code> <code class="bash plain">readme.cmake</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">buckets hooks readme.freetds</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">build include redis</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">buildconf ldap renames_pending</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">build.conf libaprutil.dep strmatch</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">build-outputs.mk libaprutil.dsp </code><code class="bash functions">test</code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain">changes libaprutil.mak uri</code>
</div>
<div class="line number16 index15 alt1">
<code class="bash plain">cmakelists.txt libaprutil.rc xlate</code>
</div>
<div class="line number17 index16 alt2">
<code class="bash plain">config.layout license xml</code>
</div>
<div class="line number18 index17 alt1">
<code class="bash plain">configure makefile.</code><code class="bash keyword">in</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
接着,我们就可以对它进行编译安装了,注意,编译时的代码与刚刚略有不同,需要加上apr-1.6.2的目录:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_283274">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ./configure --prefix=/app/apr-util --with-apr=/app/apr/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
编译的命令很简单,只需要指定一个目录,要记住这个目录0.0,接下来我们还会用到。</p>
<p>
编译安装完成后,我们来查看一下/app目录,看是不是已经生成了apr-util这个文件夹:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_36781">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ls /app/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">apr apr-util</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
可以看到已经有了这个文件夹,所以这一步骤我们完成。</p>
<p>
<strong>5、编译安装httpd-2.4</strong></p>
<p>
同样的,首先我们要进入这个目录: </p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_92445">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cd httpd-2.4.28/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># ls</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">about_apache docs makefile.win</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">acinclude.m4 emacs-style modules</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">apache-apr2.dsw httpd.dep notice</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">apache.dsw httpd.dsp nwgnumakefile</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">apache_probes.d httpd.mak os</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">ap.d httpd.spec readme</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">build include readme.cmake</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">buildall.dsp </code><code class="bash functions">install</code> <code class="bash plain">readme.platforms</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">buildbin.dsp installbin.dsp roadmap</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">buildconf layout server</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">changes libhttpd.dep srclib</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">cmakelists.txt libhttpd.dsp support</code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain">config.layout libhttpd.mak </code><code class="bash functions">test</code>
</div>
<div class="line number16 index15 alt1">
<code class="bash plain">configure license versioning</code>
</div>
<div class="line number17 index16 alt2">
<code class="bash plain">configure.</code><code class="bash keyword">in</code> <code class="bash plain">makefile.</code><code class="bash keyword">in</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
接着,我们就进行编译安装,编译的命令有些长,大家写的时候要注意不要少写了东西,不然就会报错报错报错!或者就像小编这样,把代码分行写,但是一定要加\符号才可以诺。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_404165">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments">#./configure --prefix=/app/httpd24 \</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">> --</code><code class="bash functions">enable</code><code class="bash plain">-so \</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">> --</code><code class="bash functions">enable</code><code class="bash plain">-ssl \</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">> --</code><code class="bash functions">enable</code><code class="bash plain">-cgi \</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">> --</code><code class="bash functions">enable</code><code class="bash plain">-rewrite \</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">> --with-zlib \</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">> --with-pcre \</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">> --with-apr=</code><code class="bash plain">/app/apr/</code> <code class="bash plain">\</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">> --with-apr-util=</code><code class="bash plain">/app/apr-util/</code> <code class="bash plain">\</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">> --</code><code class="bash functions">enable</code><code class="bash plain">-modules=most \</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">> --</code><code class="bash functions">enable</code><code class="bash plain">-mpms-shared=all \</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">> --with-mpm=prefork</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain"></code><code class="bash comments"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
至此,编译安装的步骤全部结束。我们可以来测试了</p>
<p>
<strong>6、测试并进行配置</strong></p>
<p>
首先,我们先来查看一下,我们的80端口是否处于没有开启的状态:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_941741">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ss -tnl</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">state recv-q send-q </code><code class="bash functions">local</code> <code class="bash plain">address:port peer address:port </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">listen 0 128 :::22 :::* </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">listen 0 128 *:22 *:* </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">listen 0 128 127.0.0.1:631 *:* </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">listen 0 128 ::1:631 :::* </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">listen 0 100 ::1:25 :::* </code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">listen 0 100 127.0.0.1:25 *:*</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
可以看出我们的80端口并未开启,强烈建议大家一定要查看,如果我们之前的机器上装过httpd服务,就把他卸载,至少至少也要停止服务,保证我们的80端口是关闭的状态,不然我们新安装的2.4版本是启动不起来的!</p>
<p>
接着,我们进入/app/httpd24/bin/这个目录,把服务开启一下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_373757">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cd /app/httpd24/bin/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># ./apachectl start</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">ah00558: httpd: could not reliably determine the server</code><code class="bash string">'s fully qualified domain name, using localhost.localdomain. set the '</code><code class="bash plain">servername' directive globally to suppress this message</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
现在,我们再来查看一下端口开启情况:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_261884">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ss -tnl</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">state recv-q send-q </code><code class="bash functions">local</code> <code class="bash plain">address:port peer address:port </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">listen 0 128 :::80 :::* </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">listen 0 128 :::22 :::* </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">listen 0 128 *:22 *:* </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">listen 0 128 127.0.0.1:631 *:* </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">listen 0 128 ::1:631 :::* </code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">listen 0 100 ::1:25 :::* </code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">listen 0 100 127.0.0.1:25 *:*</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
可以看出,我们的80端口已经开启,接着我们就可以用其他的机器来测试一下了:</p>
<p>
我们在centos7上使用curl命令来测试:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_269836">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># curl 192.168.191.128</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"><html><body><h1>it works!<</code><code class="bash plain">/h1</code><code class="bash plain">><</code><code class="bash plain">/body</code><code class="bash plain">><</code><code class="bash plain">/html</code><code class="bash plain">></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
测试成功。</p>
<p>
至此,我们的实验已经圆满完成,已经成功的在centos6上安装上了httpd2.4版本。</p>
<p>
<span><strong>方法二 一次编译法</strong></span></p>
<p>
在上一个实验中,我们使用分别编译的方法把httpd2.4版本安装到了centos6上,但是分别编译的方法还是略有麻烦,那有没有一次就可以完成编译的方法呢?小编很负责任的告诉你,当然是有的!接下来我们就来看一看如何才能一次编译安装所有的东西~</p>
<p>
<strong>1、下载源码并上传至虚拟机</strong></p>
<p>
我们可以使用<code>yum info httpd</code>和<code>yum info apr</code>来查看这两个服务的官网,然后我们去官网下载最新的稳定版本:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos 6中编译配置httpd2.4的多种方法详解" alt="Centos 6中编译配置httpd2.4的多种方法详解" src="https://zhuji.jb51.net/uploads/img/202305/5dc9515e55812427634990a96f0b1ea2.jpg"></p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos 6中编译配置httpd2.4的多种方法详解" alt="Centos 6中编译配置httpd2.4的多种方法详解" src="https://zhuji.jb51.net/uploads/img/202305/c21b7ac25c8198ab82de92daa51d4ea1.jpg"></p>
<p>
下面附上官网地址:</p>
<p>
httpd官网:</p>
<p>
apr官网:</p>
<p>
我们可以去官网下载最新的稳定版本,这里,小编下载的是apr-1.6.2.tar.gz,apr-util-1.6.0.tar.gz,httpd-2.4.28.tar.bz2,接下来的实验,就以小编下载的版本为示范,给大家演示如何安装。</p>
<p>
我们使用rz命令,将我们下载好的源码包上传至我们的centos6虚拟机,我们可以查看一下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_147663">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ll</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">total 8004</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">-rw-r--r-- 1 root root 1071074 sep 29 12:27 apr-1.6.2.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">-rw-r--r-- 1 root root 565507 sep 29 12:27 apr-util-1.6.0.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">-rw-r--r-- 1 root root 6553163 oct 15 12:35 httpd-2.4.28.</code><code class="bash functions">tar</code><code class="bash plain">.bz2</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
该步骤完成。</p>
<p>
<strong>2、安装所依赖的包组</strong></p>
<p>
在编译安装开始之前,我们要先把所依赖的包组安装上,不然在接下来的编译安装过程中会出错。</p>
<p>
安装命令如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_715209">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">yum groupinstall </code><code class="bash string">"development tools"</code> <code class="bash plain">-y</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">pcre-devel -y</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">openssl-devel -y</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">expat-devel -y</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
安装成功后,我们就可以对apr的分别编译了。</p>
<p>
<strong>3、对源码进行解压缩</strong></p>
<p>
第一步中,我们已经把源码上传到了我们的虚拟机上,但是还没有进行任何操作,这一步骤中,我们就需要把源码进行解压缩,并放入指定的文件夹中,来创造一次编译安装的条件,具体操作如下:</p>
<p>
首先,对三个包分别进行解压:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_390100">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">tar</code> <code class="bash plain">xvf httpd-2.4.28.</code><code class="bash functions">tar</code><code class="bash plain">.bz2</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">tar</code> <code class="bash plain">xvf apr-util-1.6.0.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">tar</code> <code class="bash plain">xvf apr-1.6.2.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
解压完成后,我们把xvf apr-1.6.2.tar.gz和apr-util-1.6.0.tar.gz分别复制到httpd-2.4.28.tar.bz2这个目录下的指定文件夹中并改名字:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_710029">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cp -a apr-1.6.2 httpd-2.4.28/srclib/apr</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># cp -a apr-util-1.6.0 httpd-2.4.28/srclib/apr-util</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># ls httpd-2.4.28/srclib/</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">apr apr-util makefile.</code><code class="bash keyword">in</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
我们可以看出,在httpd-2.4.28/srclib/目录下已经有了apr和apr-util这两个文件夹了。本步骤完成。</p>
<p>
<strong>4、编译安装</strong></p>
<p>
准备工作都做好了,接下来就是编译安装了。</p>
<p>
一样的,需要先进入到httpd-2.4.28/这个目录下。由于代码很长,希望大家仔细仔细再仔细,或者像小编一样分行写:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_83626">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cd httpd-2.4.28</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># ./configure --prefix=/app/httpd24 \</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">--</code><code class="bash functions">enable</code><code class="bash plain">-so \</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">--</code><code class="bash functions">enable</code><code class="bash plain">-ssl \</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">--</code><code class="bash functions">enable</code><code class="bash plain">-cgi \</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">--</code><code class="bash functions">enable</code><code class="bash plain">-rewrite \</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">--with-zlib \</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">--with-pcre \</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">--with-included-apr \</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">--</code><code class="bash functions">enable</code><code class="bash plain">-modules=most \</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">--</code><code class="bash functions">enable</code><code class="bash plain">-mpms-shared=all \</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">--with-mpm=prefork</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain"></code><code class="bash comments"># make -j 4 && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
安装的<code>make -j 4 && make install</code>这一行代码意思是开启4个进程同时工作,进行安装,这样速度比较快一些。</p>
<p>
以上,编译安装完成,接着,我们可以进行测试,并进行一些配置的修改。</p>
<p>
<strong>5、测试并进行配置</strong></p>
<p>
首先,进入/app/httpd24这个文件夹,查看一下内容:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_530451">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ls</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">bin build cgi-bin conf error htdocs icons include lib logs </code><code class="bash functions">man</code> <code class="bash plain">manual modules </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
上一个实验我们是进入bin/目录下,然后使用apachectl来启动我们的服务的,但是如果每次都这样启动服务,无疑很麻烦,因为要加上路径,所以我们干脆把这个路径设置到path变量里面,这样我们使用服务就会变得比较方便,具体操作如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_61445">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># vim /etc/profile.d/httpd24.sh</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">path=</code><code class="bash plain">/app/httpd24/bin</code><code class="bash plain">:$path</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
然后我们运行一下使它生效:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_797956">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># . /etc/profile.d/httpd24.sh</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
现在我们在任意页面都可以启动我们的服务。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_912979">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># apachectl start</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
我们现在可以在另一台机器上测试一下我们的服务:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_14687">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># curl 192.168.191.128</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"><html><body><h1>it works!<</code><code class="bash plain">/h1</code><code class="bash plain">><</code><code class="bash plain">/body</code><code class="bash plain">><</code><code class="bash plain">/html</code><code class="bash plain">></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
我们的页面是保存在/app/httpd24/htdocs/这个文件夹里的,我们也可以根据自己的需要,把这个页面修改一下~:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_34257">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cd htdocs/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># ls</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">index.html</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain"></code><code class="bash comments"># vim index.html </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain"><html><body><h1>welcome to keer'home!<</code><code class="bash plain">/h1</code><code class="bash plain">><</code><code class="bash plain">/body</code><code class="bash plain">><</code><code class="bash plain">/html</code><code class="bash plain">></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
然后我们再去centos7上查看一下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_790511">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># curl 192.168.191.128</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"><html><body><h1>welcome to keer'home!<</code><code class="bash plain">/h1</code><code class="bash plain">><</code><code class="bash plain">/body</code><code class="bash plain">><</code><code class="bash plain">/html</code><code class="bash plain">></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
已经是我们修改过后的样子了。</p>
<p>
当然,我们还是希望能够写成服务脚本,这样的话,我们使用起来就更加便利,现在我们的服务已经启动起来了,我们可以用ps aux来查看一下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_532419">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ps aux</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">user pid %cpu %mem vsz rss </code><code class="bash functions">tty</code> <code class="bash plain">stat start </code><code class="bash functions">time</code> <code class="bash functions">command</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">root 1 0.0 0.0 19348 1560 ? ss 00:22 0:01 </code><code class="bash plain">/sbin/init</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">root 2 0.0 0.0 0 0 ? s 00:22 0:00 </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">……</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">daemon 35258 0.0 0.0 76416 1436 ? s 00:53 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">daemon 35259 0.0 0.0 76416 1436 ? s 00:53 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">daemon 35260 0.0 0.1 76416 2104 ? s 00:53 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">daemon 35261 0.0 0.1 76416 2084 ? s 00:53 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">daemon 35262 0.0 0.1 76416 2084 ? s 00:53 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">daemon 35264 0.0 0.0 76416 1440 ? s 00:54 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">root 35326 13.0 0.0 110260 1152 pts</code><code class="bash plain">/0</code> <code class="bash plain">r+ 01:22 0:00 </code><code class="bash functions">ps</code> <code class="bash plain">aux</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
在这里我们又发现了一个问题,此时的httpd是以daemon的身份运行的,我们当然是希望它是由apache的身份来运行,所以我们可以来修改一下:</p>
<p>
我们先来查看一下apache这个用户是否存在:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_247033">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># id apache</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">uid=48(apache) gid=48(apache) </code><code class="bash functions">groups</code><code class="bash plain">=48(apache)</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
如果不存在的话,我们可以使<code>用useradd -r apache</code>来创建,因为apache是系统的服务用的账号,所以需要加上-r</p>
<p>
然后我们就可以来修改配置文件了,配置文件在/app/httpd24/conf/这个文件夹里,我们进去并把文件修改一下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_267115">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cd /app/httpd24/conf/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># ls</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">extra httpd.conf magic mime.types original</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain"></code><code class="bash comments"># vim httpd.conf</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
打开这个文件以后,我们把:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_548783">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">user daemon</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">group daemon</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
改成这样:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_315750">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">user apache</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">group apache</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这样就可以了,我们现在把服务停止,重新打开,然后再用ps aux来查看一下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_845253">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># apachectl stop</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># apachectl start</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># ps aux</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">user pid %cpu %mem vsz rss </code><code class="bash functions">tty</code> <code class="bash plain">stat start </code><code class="bash functions">time</code> <code class="bash functions">command</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">root 1 0.0 0.0 19348 1560 ? ss 00:22 0:01 </code><code class="bash plain">/sbin/init</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">root 2 0.0 0.0 0 0 ? s 00:22 0:00 </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">……</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">apache 35352 0.0 0.0 76416 1436 ? s 01:33 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">apache 35353 0.0 0.0 76416 1436 ? s 01:33 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">apache 35354 0.0 0.0 76416 1436 ? s 01:33 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">apache 35355 0.0 0.0 76416 1436 ? s 01:33 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">apache 35356 0.0 0.0 76416 1436 ? s 01:33 0:00 </code><code class="bash plain">/app/httpd24/bin/httpd</code> <code class="bash plain">-k start</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">root 35357 3.0 0.0 110260 1152 pts</code><code class="bash plain">/0</code> <code class="bash plain">r+ 01:33 0:00 </code><code class="bash functions">ps</code> <code class="bash plain">aux</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这样,我们的httpd就是以apache的身份来运行的了。</p>
<p>
当然,我们还可以直接做成服务,服务脚本也不需要我们自己写,直接把系统自带的httpd的服务脚本复制一份,修改一下就可以了,具体操作步骤如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_900504">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cd /etc/init.d</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># ls</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">abrt-ccpp cpuspeed htcacheclean lvm2-monitor ntpd rdma spice-vdagentd winbind</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">abrtd crond httpd mdmonitor ntpdate restorecond sshd wpa_supplicant</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">abrt-oops cups ip6tables messagebus portreserve rngd svnserve</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">acpid dnsmasq iptables netconsole postfix rsyslog sysstat</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">atd firstboot irqbalance netfs pppoe-server sandbox udev-post</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">auditd functions kdump network psacct saslauthd vmware-tools</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">blk-availability haldaemon killall networkmanager quota_nld single vmware-tools-thinprint</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">bluetooth halt lvm2-lvmetad nfs-rdma rdisc smartd wdaemon</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain"></code><code class="bash comments"># cp httpd httpd24</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain"></code><code class="bash comments"># vim httpd24</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
文件里上面的内容不需要改动,我们只需要修改一下路径就可以了,也就是把</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_12964">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># path to the apachectl script, server binary, and short-form for messages.</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">apachectl=</code><code class="bash plain">/usr/sbin/apachectl</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">httpd=${httpd-</code><code class="bash plain">/usr/sbin/httpd</code><code class="bash plain">}</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">prog=httpd</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">pidfile=${pidfile-</code><code class="bash plain">/var/run/httpd/httpd</code><code class="bash plain">.pid}</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">lockfile=${lockfile-</code><code class="bash plain">/var/lock/subsys/httpd</code><code class="bash plain">}</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">retval=0</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">stop_timeout=${stop_timeout-10}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
修改为:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_416810">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># path to the apachectl script, server binary, and short-form for messages.</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">apachectl=</code><code class="bash plain">/app/httpd24/bin/apachectl</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">httpd=${httpd-</code><code class="bash plain">/app/httpd24/bin/httpd</code><code class="bash plain">}</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">prog=httpd</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">pidfile=${pidfile-</code><code class="bash plain">/app/httpd24/logs/httpd</code><code class="bash plain">.pid}</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">lockfile=${lockfile-</code><code class="bash plain">/var/lock/subsys/httpd24</code><code class="bash plain">}</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">retval=0</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">stop_timeout=${stop_timeout-10}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
然后保存退出就可以了。</p>
<p>
接下来,就可以把这个服务添加到服务列表里了:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_434555">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># chkconfig --add httpd24</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># chkconfig httpd24 on</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># chkconfig --list httpd24</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">httpd24 0:off 1:off 2:on 3:on 4:on 5:on 6:off</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这样,我们的httpd2.4版本就可以通过service来控制了。</p>
<p>
至此,我们的服务的主要功能就实现了。</p>
<p>
我们的实验圆满完成。</p>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。</p>
<p>
原文链接:http://www.cnblogs.com/keerya/p/7705195.html</p>
頁:
[1]