欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Apache源码包在LINUX(CENTOS6.8)中的安装(出现问题及解决)

程序员文章站 2023-04-05 16:21:23
linux centos apache httpd apr apr-util pcre rpm 源码包 ......

任务在cent6.8系统中安装apache(版本为:httpd-2.4.41)

前提由于源码包必须先编译后安装,所以必须先安装编译器:gcc

理论步骤

1.检测gcc软件包,如果不存在则进行安装。

2.下载aache的源码包(压缩包形式)并上传到centos服务器中

3.解压源码包后进入解压后的目录,执行配置,编译,安装。

  3.1 配置:使用 ./configure 进行安装目录的设置

       3.2 编译:使用 make 命令直接执行

       3.3 安装:使用 make install 命令直接执行。

4.如果无意外,按照“理论步骤',完成后即可在centos服务器启用httpd服务(运行apache)中,使用浏览器访问

     http://localhost/       或   http://127.0.0.1       或    http://192.168.253.129    

 

实际过程:

 

检测gcc服务包:

[root@cent001 ~]# rpm -q gcc
gcc-4.4.7-23.el6.x86_64

说明gcc服务包已经安装。进入”理论步骤“2

 

下载aache的源码包(压缩包形式)并上传到centos服务器中:

访问:  

找到:  然后下载到本地。

然后通过ftp上传到centos的个人源码包专用目录/usr/local/src  下边。进入”理论步骤“3

 

解压源码包

进入源码包压缩包的存储目录:

[root@cent001 ~]# cd /usr/local/src

解压httpd-2.4.41.tar.gz源码压缩包(会生成httpd-2.4.41目录):

[root@cent001 src]# tar -zxvf httpd-2.4.41.tar.gz 

查看解压后的源码包大小:(此操作不是必须)

[root@cent001 src]# du -sh httpd-2.4.41

46m httpd-2.4.41

进入源码包解压后目录:

[root@cent001 src]# cd httpd-2.4.41

开始进行”理论步骤“3.1

 

配置:使用 ./configure 进行安装目录的设置

执行命令进行配置:(注意:官方手册推荐使用 /usr/local/apache2 作为httpd的源码安装路径)

[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2
checking for chosen layout... apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -e
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure:
configure: configuring apache portable runtime library...
configure:
checking for apr... no
configure: error: apr not found. please read the documentation.

出现问题,大概意思是说apr软件包不存在,导致配置不成功,它还说让我们去读安装说明文档(目录中的installreadme文档)

 

首先确认一下,是否apr软件包真不存在:

[root@cent001 httpd-2.4.41]# rpm -q apr
apr-1.3.9-5.el6_9.1.x86_64

很明显,apr软件包已经存在了,这跟配置出错提示的”apr not found“根本两相矛盾了。

所以,这时你就猜测地想到:依赖的apr版本冲突了,是完成操作,必须依赖于其它版本的apr。那重新指定依赖的版本行了吧,不使用默认的,于是:

[root@cent001 httpd-2.4.41]# ./configure -help | grep apr
--with-included-apr use bundled copies of apr/apr-util
--with-apr=path prefix for installed apr or the full path to
apr-config
--with-apr-util=path prefix for installed apu or the full path to

可以知道,利用--width-apr=path 可以通过配置apr安装目录来指定特定版本的apr,于是 ./configure 操作可以重新执行为如下形式:

[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=能被正确依赖的apr版本的安装目录

这时要解决的问题是:

哪个(哪些)版本的apr能够被正确依赖(由于兼容性原因,猜测的话,一般最新版本最好,当然不排除最新版本的apr不兼容老旧版本的httpd的情况)

 

由于不是十分肯定是否最新版本apr(或其它软件包)能被正确依赖,我们在解决办法有两个:

办法-1。按照“please read the documentation”的提示,去读installreadme文档,以便确定肯定我们上边的猜测。

办法-2。尝试安装某些版本的apr(或其它软件包)直到可行,比如尝试:apr-1.4.2等等。

   *****先按照办法-1来进行,如果不行的话则进入办法-2。******

 

 

先按办法-1去做:

[root@cent001 httpd-2.4.41]# vim install

然后/apr 搜索一下,可以以下相关内容:

* consider if you want to use a previously installed apr and
apr-util (such as those provided with many oses) or if you
need to use the apr and apr-util from the apr.apache.org
project. if the latter, download the latest versions and
unpack them to ./srclib/apr and ./srclib/apr-util (no
version numbers in the directory names) and use
./configure's --with-included-apr option. this is required
if you don't have the compiler which the system apr was
built with. it can also be advantageous if you are a
developer who will be linking your code with apache or using
a debugger to step through server code, as it removes the
possibility of version or compile-option mismatches with apr
and apr-util code. as a convenience, prepackaged source-code
bundles of apr and apr-util are occasionally also provided
as a httpd-2.x.x-deps.tar.gz download.

这段内容的大概意思是:

。。。。。。(不说了,看下边)==>

官方在线的安装说明文档()中还有一个比较简要的说明:

apr and apr-util
make sure you have apr and apr-util already installed on your system. if you don't, or prefer to not use the system-provided versions, download the latest versions of both apr and apr-util from apache apr, unpack them into /httpd_source_tree_root/srclib/apr and /httpd_source_tree_root/srclib/apr-util (be sure the directory names do not have version numbers; for example, the apr distribution must be under /httpd_source_tree_root/srclib/apr/) and use ./configure's --with-included-apr option. on some platforms, you may have to install the corresponding -dev packages to allow httpd to build against your installed copy of apr and apr-util.
apr 和 apr-util

确保你系统中已经安装了apr和apr-util。如果没有安装过,或者安装了却不想用它,那就下载最新版本的apr和apr-util的源码压缩包并解压后放到:httpd源码目录/srclib/apr与 和 httpd源码目录/srclib/apr-util (命名中不要带版本号)。例如:

apr源码必须放在:httpd源码目录/srclib/apr 中,并且执行./configure时使用: --with-included-apr

上边的内容就我们当前的情况来举例,其操作原由和过程就是:

不想用内置的rpm版本的apr(因为默认使用时发生版本冲突),那就从网址:http://apr.apache.org/  中下载最新的apr与apr-util(其推荐版本为: 与  )

然后解压为:

apr-1.7.0  目录,重命名为 apr(即去掉版本号信息) 

apr-util-1.6.1  目录,重命名为 apr-util(即去掉版本号信息) 

将apr目录与apr-util目录复制(或剪贴)到  httpd源码目录(即:/usr/local/src/httpd-2.4.41/)

此时httpd源码目录为:

/usr/local/src/httpd-2.4.41/

/usr/local/src/httpd-2.4.41/apr

/usr/local/src/httpd-2.4.41/apr-util

。。。

最后,使用:./configure 时,用  --with-included-apr,这是因为:

[root@cent001 httpd-2.4.41]# ./configure -help | grep with-included-apr
--with-included-apr use bundled copies of apr/apr-util

可知:配置时使用--with-included-apr,会使用httpd源码目录/srclib/下的apr与apr-util
注意:不要被--with-included-apr 名称迷惑,它同时作用于apr与apr-util。也就是说,没有:--with-included-apr-util参数项。

 

以上便是官方中提到的说明,它提到的最重要的3条是:

1。最新版本(或当前推荐版本)的apr及apr-util是可用于当前各版本的httpd的,不会出现版本冲突。(我们之前遇到的问题“哪个(哪些)版本的apr能够被正确依赖” ,这1条就是答案---使用最新版本推荐版本

2。可以使用系统内置的apr和apr-util(我们之前使用的就是这种方式,然后遇到了问题,一步步解决后,剩下的版本问题,并最终到达了上边第1条)

3。一种用于配置依赖的源码放置方式及命令参数--with-included-apr进行./configure操作。

 

因为我想以源码包的形式手动安装apr与apr-util,所以暂时不按上边的第3条操作,而是根据第1条,回到我们先前的问题处,即:

[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=最新版本或推荐版本的apr安装目录

由于指定的是“安装目录”,所以必须已进行了相应安装,才存在”安装目录“,我们还没有对最新版本或推荐版本的apr进行安装,于是,先进行安装推荐版本的apr:(假设已经下载并解压)

[root@cent001 apr-1.7.0]# ls
apr-1-config apr.spec config.layout emacs-mode libapr.rc misc readme time
apr-config.in atomic config.log encoding libtool mmap readme.cmake tools
apr.dep build config.nice file_io license network_io shmem user
apr.dsp buildconf config.status helpers locks notice strings
apr.dsw build.conf configure include makefile nwgnumakefile support
apr.mak build-outputs.mk configure.in libapr.dep makefile.in passwd tables
apr.pc changes docs libapr.dsp makefile.win poll test
apr.pc.in cmakelists.txt dso libapr.mak memory random threadproc

[root@cent001 apr-1.7.0]# vim readme

....

configuring and building apr on unix
====================================

simply;

./configure --prefix=/desired/path/of/apr
make
make test
make install

....

[root@cent001 apr-1.7.0]# ./configure --prefix=/usr/local/apr

[root@cent001 apr-1.7.0]# make

[root@cent001 apr-1.7.0]# make install

至此,最新版本(推荐版本)的apr源码安装成功。有了安装目录:/usr/local/apr,于是,开始执行以下操作:

[root@cent001 apr-1.7.0] cd /usr/local/src/httpd-2.4.41

[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr

checking for chosen layout... apache

checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -e
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure:
configure: configuring apache portable runtime library...
configure:
checking for apr... yes
setting cc to "gcc"
setting cpp to "gcc -e"
setting cflags to " -g -o2 -pthread"
setting cppflags to " -dlinux -d_reentrant -d_gnu_source"
setting ldflags to " "
configure:
configure: configuring apache portable runtime utility library...
configure:
checking for apr-util... no
configure: error: apr-util not found. please read the documentation.

出现的问题是apr-util找不到,根据之前的官方文档,发现与apr问题相似,于是,先安装推荐版本的apr-util(假设已经进行了下载和解压)

[root@cent001 apr-util-1.6.1]# ls
aprutil.dep build configure.in include makefile.win redis
aprutil.dsp buildconf crypto ldap memcache renames_pending
aprutil.dsw build.conf dbd libaprutil.dep misc strmatch
aprutil.mak build-outputs.mk dbm libaprutil.dsp notice test
apr-util.pc.in changes docs libaprutil.mak nwgnumakefile uri
apr-util.spec cmakelists.txt encoding libaprutil.rc readme xlate
apu-config.in config.layout export_vars.sh.in license readme.cmake xml
buckets configure hooks makefile.in readme.freetds

[root@cent001 apr-util-1.6.1]# vim readme

[root@cent001 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a bsd-compatible install... /usr/bin/install -c
checking for working mkdir -p... yes
apr-util version: 1.6.1
checking for chosen layout... apr-util
checking for gcc... gcc
checking whether the c compiler works... yes
checking for c compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the gnu c compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept iso c89... none needed
applying apr-util hints file rules for x86_64-pc-linux-gnu
checking for apr... no
configure: error: apr could not be located. please use the --with-apr option.

出现错误,要求用--with-apr 参数指明apr的安装路径,于是:

[root@cent001 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

[root@cent001 apr-util-1.6.1]# make

此时出现错误信息有:

xml/apr_xml.c:35:19: 错误:expat.h:没有那个文件或目录
xml/apr_xml.c:66: 错误:expected specifier-qualifier-list before ‘xml_parser’
xml/apr_xml.c: 在函数‘cleanup_parser’中:
xml/apr_xml.c:364: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c:365: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c: 在文件层:
xml/apr_xml.c:384: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
xml/apr_xml.c: 在函数‘apr_xml_parser_create’中:
xml/apr_xml.c:401: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c:402: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c:410: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c:411: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c:412: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c:424: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c:424: 错误:‘default_handler’未声明(在此函数内第一次使用)
xml/apr_xml.c:424: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
xml/apr_xml.c:424: 错误:所在的函数内也只报告一次。)
xml/apr_xml.c: 在函数‘do_parse’中:
xml/apr_xml.c:434: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c:438: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c:442: 错误:‘apr_xml_parser’没有名为‘xp_err’的成员
xml/apr_xml.c:442: 错误:‘apr_xml_parser’没有名为‘xp’的成员
xml/apr_xml.c: 在函数‘apr_xml_parser_geterror’中:
xml/apr_xml.c:500: 错误:‘apr_xml_parser’没有名为‘xp_err’的成员
xml/apr_xml.c:500: 错误:‘apr_xml_parser’没有名为‘xp_err’的成员
make[1]: *** [xml/apr_xml.lo] 错误 1
make[1]: leaving directory `/usr/local/src/apr-util-1.6.1'
make: *** [all-recursive] 错误 1

百度了一下,根据:https://blog.csdn.net/dn1115680109/article/details/80847924

于是对缺少的expat库进行安装:

[root@cent001 apr-util-1.6.1]# yum install -y  expat-devel

执行后就安装了:expat-devel.x86_64 0:2.0.1-11.el6_2,然后清理后再次编译:

[root@cent001 apr-util-1.6.1]# make clean

[root@cent001 apr-util-1.6.1]# make

[root@cent001 apr-util-1.6.1]# make install

至此,最新版本(推荐版本)的apr-util 源码安装成功。有了安装目录:/usr/local/apr-util,于是,开始执行以下操作:

[root@cent001  apr-util-1.6.1] cd /usr/local/src/httpd-2.4.41

[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

...

checking whether gcc accepts -g... yes

checking for gcc option to accept iso c89... none needed

checking how to run the c preprocessor... gcc -e

checking for gcc option to accept iso c99... -std=gnu99

checking for pcre-config... false

configure: error: pcre-config for libpcre not found. pcre is required and available from http://pcre.org/

出错原因:pcre模块没有配置。于是我们查看一下pcre:

[root@cent001 httpd-2.4.41]# rpm -q pcre

pcre-7.8-7.el6.x86_64

说明默认是有的,可能还是版本冲突原因,依据下载个最新版(如果该网上不去,可以换成https协议访问: ,或者访问:

下载最新版本的pcre(暂时不用:pcre2):pcre-8.43.tar.gz

[root@cent001 pcre-8.43]# ls

查看到有install安装说明文档

[root@cent001 pcre-8.43]# vim install

一些安装说明:

configure、make、make check、make install、make installcheck、

make maintainer-clean、make uninstall、make  distcheck、./configure --help

[root@cent001 pcre-8.43]# ./configure --prefix=/usr/local/pcre

[root@cent001 pcre-8.43]# make

[root@cent001 pcre-8.43]# make install

至此,最新版本的pcre 源码安装成功。有了安装目录:/usr/local/pcre,于是,开始执行以下操作:

[root@cent001  apr-util-1.6.1] cd /usr/local/src/httpd-2.4.41

[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util -with-pcre=/usr/local/pcre

...

configure: summary of build options:

server version: 2.4.41
install prefix: /usr/local/apache2
c compiler: gcc -std=gnu99
cflags: -g -o2 -pthread
cppflags: -dlinux -d_reentrant -d_gnu_source
ldflags:
libs:
c preprocessor: gcc -e

至此,httpd服务安装过程中的配置正确地完成,进入”理论步骤“3.2

编译:使用 make 命令直接执行

[root@cent001 httpd-2.4.41]# make clean

[root@cent001 httpd-2.4.41]# make

...

/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_parsercreate'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_geterrorcode'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_setuserdata'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_errorstring'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_setentitydeclhandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_parserfree'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_setelementhandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_stopparser'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_parse'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `xml_setcharacterdatahandler'
collect2: ld returned 1 exit status
make[2]: *** [htpasswd] 错误 1
make[2]: leaving directory `/usr/local/src/httpd-2.4.41/support'
make[1]: *** [all-recursive] 错误 1
make[1]: leaving directory `/usr/local/src/httpd-2.4.41/support'
make: *** [all-recursive] 错误 1

出错原因:猜测是由于apr-util引起的。

如果是这样的话,那么:之前猜想着“官方都极力推荐了那么应该没问题”是有问题的,apr-util推荐版本可以针对任何版本都可行这种想法就是错误的。

现在是真的是apr-util的问题吗?推荐版本的apr-util究竟是真的可靠吗?

明眼看上去,确实apr-util很有问题!官方办法行不通了,于是采用土法:

 

按办法-2去做

 

于是更换一下低版本的apr-util 来试试:

重新下载低版本的apr-util:

网址:http://archive.apache.org/dist/apr/  (此网址包含各版本的apr与apr-util,但速度较慢,建议使用百度搜索:archive.apache.org/dist/apr/  然后以百度快照 形式进入下载)

下载   (下载速度太慢,有时真的下不动。推荐从其它地方下载)

然后进行解压。移除之前版本(直接重命名),进行当前版本安装:

[root@cent001 httpd-2.4.41]# cd /usr/local/

[root@cent001 local]# mv apr-util apr-util.bak2

[root@cent001 local]# cd /usr/local/src/apr-util-1.3.11

[root@cent001 apr-util-1.3.11]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

[root@cent001 apr-util-1.3.11]# make clean

[root@cent001 apr-util-1.3.11]# make

[root@cent001 apr-util-1.3.11]# make install

至此,apr-util已经替换为低版本,重新执行:

[root@cent001  apr-util-1.6.1] cd /usr/local/src/httpd-2.4.41

[root@cent001 httpd-2.4.41]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util -with-pcre=/usr/local/pcre

[root@cent001 httpd-2.4.41]# make clean

[root@cent001 httpd-2.4.41]# make

至此,编译任务成功,进入”理论步骤“3.3

 

安装:使用 make install 命令直接执行

[root@cent001 httpd-2.4.41]# make install

至此,安装任务成功,进入”理论步骤“4

 这里直接说明了:”官方极力推荐的版本并不一定适用“,比如apr适用,而apr-util就不适用。

启用httpd服务(运行apache)中,使用浏览器访问

 

启动服务,使用:安装目录/bin/apachectl start    (要停止服务则使用:安装目录/bin/apachectl stop)

[root@cent001 httpd-2.4.41]# /usr/local/apache2/bin/apachectl start
ah00557: httpd: apr_sockaddr_info_get() failed for cent001
ah00558: httpd: could not reliably determine the server's fully qualified domain name, using 127.0.0.1. set the 'servername' directive globally to suppress this message

这种情况,可以参照 https://www.cnblogs.com/xiaoqian1993/p/6027907.html  ,进行2步修改:

1。修改hosts文件:

[root@cent001 httpd-2.4.41]# vim /etc/hosts

添加一行(注意其中的cent001为主机名):       127.0.0.1   localhost.localdomain localhost cent001

 

2。修改httpd配置文件:

[root@cent001 httpd-2.4.41]# vim /usr/local/apache2/conf/httpd.conf

查找#servername,添加一行:servername localhost:80

 

再次启动(或停止后再次启动):

[root@cent001 httpd-2.4.41]# /usr/local/apache2/bin/apachectl start
浏览:http://localhost/       或   http://127.0.0.1       或    http://192.168.253.129    

正常的话显示:it works!

httpd (pid 119873) already running

至此,整个httpd-2.4.41安装过程算是暂时可行。另外还有一些其它的问题:系统有时也默认安装了httpd服务(rpm形式):

 

如果是rmp包的apache可以直接进行如下操作:
查看rpm的apache版本:
[root@cent001 httpd-2.4.41]# rpm -q httpd
httpd-2.2.15-53.el6.centos.x86_64

或者:

[root@cent001 httpd-2.4.41]# httpd -v
server version: apache/2.2.15 (unix)
server built: may 11 2016 19:28:33

 

查看rpm的apache状态:
[root@cent001 httpd-2.4.41]# service httpd status
httpd 已停

 

rpm的apache启动方式:

[root@cent001 httpd-2.4.41]# service httpd start

正在启动 httpd:                                           [确定]

[root@cent001 httpd-2.4.41]# service httpd status
httpd (pid 120138) 正在运行...

使用启动命令后没有出错信息的情况下,通过查询状态为“正在运行”就可以表明已经成功启动服务。

如果启动失败,信息如下显示时,则代表已经有服务占用了80端口(可能是源码包的apache已经启动了,要使用rpm的apache的话就可以先停止源码版的)
正在启动 httpd:(98)address already in use: make_sock: could not bind to address [::]:80
(98)address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
unable to open logs
[失败]

另外,如果像源码版的apache服务,启动时显示:

ah00557: httpd: apr_sockaddr_info_get() failed for cent001

ah00558: httpd: could not reliably determine the server's fully qualified domain name, using 127.0.0.1. set the 'servername' directive globally to suppress this message

则可以按照源码版,同时修改hosts文件及配置文件:

其中hosts文件是同一个(即说到hosts文件的时候,就是指:/etc/hosts

而rpm版的apache的配置文件,是在:/etc/httpd/conf/httpd.conf  (可以通过:# rpm -ql httpd | more  看到)

[root@cent001 httpd-2.4.41]# vim /etc/httpd/conf/httpd.conf

按照上边源码版的修改同样修改就可以!

 

 

==================================================================

    end of 《apache源码包在linux(centos6.8)中的安装(出现问题及解决)》

==================================================================