编译httpd2.4.10踩坑记

作者【Jev Tse】【版权所有】  系统环境:centos6.8    

【本文概览】    
 零、httpd2.4.10编译总结    
    1、基础环境    
    2、依赖包组    
  一、安装前准备  
  二、编译踩坑    
    1、第一个坑:APR not found (ARP-Ulit not fount)    
    2、第二个坑:pcre-config for libpcre not found.    
    3、第三个坑:g++: command not found    
    4、第四个坑:make[1]: *** [libpcrecpp.la] Error 1    
    5、第五个坑:httpd报错AH00557 AH00558    
  三、测试服务    
  四、踩坑总结


零、httpd2.4.10编译总结

1、基础环境:
   安装"Development Tools"包组
   安装升级gcc、gcc-g++组件
2、依赖包组:
   apr、apr-ulit、pcre
   包组来源:
   wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
   wget http://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz
   wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.20/pcre-8.20.zip
   


一、安装前准备

1、系统环境:centos6.8

2、安装开发软件包组以及GCC:

[root@6 Jev Tse testdir]#yum groupinstall "Development Tools"
[root@6 Jev Tse testdir]#yum install gcc

3、解压httpd-2.4.10.tar.bz2

[root@6 Jev Tse testdir]#tar xvf httpd-2.4.10.tar.bz2 
[root@6 Jev Tse testdir]#cd httpd-2.4.10


二、编译踩坑

1、第一个坑:APR not found  (ARP-Ulit not fount)

鉴于我在centos7安装httpd-2.2.29的经验,直接./configure
[root@6 Jev Tse httpd-2.4.10]#./configure  --prefix=/usr/local/Jev-apache2
checking for APR... no
configure: error: APR not found .  Please read the documentation
查看安装相关文件
[root@6 Jev Tse testdir]#cat  README  INSTALL
*  *  *  *  *  *
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.
*  *  *  *  *  *
从INSTALL 得出:
安装环境需要安装apr 以及apr-ulit,并使用--with-included-apr的选项
# 安装apr-1.5.2组件
[root@6 Jev Tse httpd-2.4.10]#reset    #清理环境,排除其他干扰
[root@6 Jev Tse testdir]#wget  \
http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
[root@6 Jev Tse testdir]#tar vxf apr-1.5.2.tar.gz
[root@6 Jev Tse testdir]#cd apr-1.5.2
[root@6 Jev Tse apr-1.5.2]# cat README
[root@6 Jev Tse apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@6 Jev Tse apr-1.5.2]#make && make install
[root@6 Jev Tse apr-1.5.2]#echo $?   #查看返回值,确定操作无误
# 安装apr-util-1.5.2组件
[root@6 Jev Tse testdir]#wget \
http://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz
[root@6 Jev Tse testdir]# tar vxf apr-util-1.5.2.tar.gz
[root@6 Jev Tse testdir]#cd apr-util-1.5.2
[root@6 Jev Tse apr-util-1.5.2]#./configure --prefix=/usr/local/apr-util \
 --with-apr=/usr/local/apr
#安装环境需要安装apr 需使用--with-included-apr的选项
[root@6 Jev Tse apr-util-1.5.2]#make && make install
[root@6 Jev Tse apr-util-1.5.2]#echo $? #查看返回值,确定操作无误

2、第二个坑:pcre-config for libpcre not found.

#重新编译安装apache
[root@6 Jev Tse testdir]#cd /testdir/httpd-2.4.10
[root@6 Jev Tse Tse httpd-2.4.10]#./configure \
--prefix=/usr/local/Jev-apache2  \
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
checking for pcre-config... false
configure: error: pcre-config for libpcre not found....
# 安装pcre-8.20组件
[root@6 Jev Tse testdir]#reset         #清理环境,排除其他干扰
[root@6 Jev Tse testdir]#wget \
http://jaist.dl.sourceforge.net/project/pcre/pcre/8.20/pcre-8.20.zip 
[root@6 Jev Tse testdir]#unzip -o pcre-8.20.zip 
[root@6 Jev Tse testdir]#cd pcre-8.20

3、第三个坑:g++: command not found

[root@6 Jev pcre-8.20]#./configure --prefix=/usr/local/pcre 
./libtool: line 990: g++: command not found
[root@6 Jev pcre-8.20]#reset
[root@6 Jev pcre-8.20]#yum install gcc-c++

4、第四个坑:make[1]: *** [libpcrecpp.la] Error 1

[root@6 Jev pcre-8.20]#./configure --prefix=/usr/local/pcre 
make[1]: *** [libpcrecpp.la] Error 1
make[1]: Leaving directory `/testdir/test1/pcre-8.20'
make: *** [all] Error 2
从网上查资料得到,需加--disable-shared --with-pic 选项
[root@6 Jev pcre-8.20]#reset             #清理环境,排除其他干扰
[root@6 Jev pcre-8.20]#./configure  --prefix=/usr/local/pcre \
 --disable-shared --with-pic   
[root@6 Jev pcre-8.20]#make && make install
[root@6 Jev pcre-8.20]#echo $?          #查看返回值,确定操作无误
#再次编译安装apache
[root@6 Jev pcre-8.20#reset             #清理环境,排除其他干扰
[root@6 Jev pcre-8.20]# cd ../httpd-2.4.10
[root@6 Jev httpd-2.4.10]#./configure --prefix=/usr/local/Jev-apache2 \
--with-apr=/usr/local/apr  --with-apr-util=/usr/local/apr-util/  \
--with-pcre=/usr/local/pcre
[root@6 Jev httpd-2.4.10]#make && make install
[root@6 Jev httpd-2.4.10]#echo $?        #查看返回值,确定操作无误
[root@6 Jev httpd-2.4.10]#cd ../
[root@6 Jev Tse testdir]#PATH=$PATH:/usr/local/ Jev-apache2/bin/  > \ 
/etc/profile.d/ Jev-apache2.sh                  #添加环境变量
[root@6 Jev Tse testdir]#source /etc/profile.d/ Jev-apache2.sh #加载环境变量

5、第五个坑:httpd报错AH00557 AH00558

[root@6 Jev Tse testdir]#apachectl start
AH00557: httpd: apr_sockaddr_info_get() failed for ...
AH00558: httpd:  ...
#经检测,这两个错误是apache主机名出错
#在httpd.conf 配置文件指定ServerName  host 即可
[root@6 Jev Tse testdir]# apachectl stop
[root@6 Jev Tse testdir]#vim  /usr/local/Jev-apache2/conf/httpd.conf
#在httpd.conf 配置文件加入“ServerName  172.16.250.69”
[root@6 Jev Tse testdir]# apachectl start
httpd (pid 58548) already running


三、测试服务

确认服务状态

[root@6 Jev Tse testdir]#netstat -ant |grep :80   #查看80端口是否正常
tcp       0     0 :::80       :::*     LISTEN
[root@6 Jev Tse testdir]#iptables –F          #清理防火墙
[root@6 Jev Tse testdir]#iptables –vnL        #确认防火墙状态
Chain INPUT (policy ACCEPT 11165 packets, 1052K bytes)
 pkts bytes target    prot opt in   out   source  destination        
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target    prot opt in   out   source  destination        
hain OUTPUT (policy ACCEPT 156 packets, 16554 bytes)
 pkts bytes target    prot opt in   out   source  destination
#编辑网页
[root@6.Jev Tse ~]#vim /usr/local/Jev-apache2/htdocs/index.html

apache踩坑记.png

经测试网页能正常访问,大功告成

apache踩坑记2.png


四、踩坑总结

1、编译软件前需看清楚,软件编译环境需求,可以避免不必要的麻烦。

2、编译出错后,用reset清理系统环境,排除其他干扰,再继续操作。

3、碰到错误,先根据错误提示以及安装帮助文档排错。

4、确实解决不了才到社区查找相关资料。


【回到页首】

作者【Jev Tse】【版权所有】

原创文章,作者:Jev Tse,如若转载,请注明出处:http://www.178linux.com/61405

(0)
Jev TseJev Tse
上一篇 2016-11-29 13:14
下一篇 2016-11-29 16:58

相关推荐

  • 多方面修复linux系统

    在这篇文章,您将看到以下方面的修复方法: ●内核文件和虚拟 ●grub.conf ●grub目录 ●boot分区 ●fstab文件 ●root密码破解   首先,要想很愉快的修复linux启动的各种问题,就必然要把linux的启动流程搞清楚。 1. 加载 BIOS 的硬件信息和进行自我测试,并依据设定取得第一个可开机的装置; 2. 读取并执行第一个…

    Linux干货 2016-09-13
  • 正则表达式及文本处理

    正则表达式及文本处理 通俗点说,正则表达式就是处理字符串的方法,更加快速简洁的代表各个要求参数,一般用于描述字符排列和匹配模式的一种语法规则,通过正则表达式一些特殊符号的辅助,让用户轻易的查找、删除、替换一些字符串的处理程序。( ps:正则表达式和通配符不一样,通配符代表的是bash接口的一个功能,但正则表达式是一种字符串处理的表达方式,两者一定要分清楚。)…

    2017-06-11
  • Linux运维之基础拾遗

    博客具体内容请移步博客园: http://www.cnblogs.com/ITOps/p/6151766.html

    Linux干货 2016-12-09
  • Linux发展史

    适用对象:本文适合希望开始学习以及想了解Linux的朋友阅读。本文中所有内容仅供参考,不作为科学依据。 一、      Linux的起源 最初的计算机其实是具有单一功能的大型计算器,只能完成指定或者设定好的工作。多数情况下计算机资源是处于空闲状态的,为了不使资源浪费,就需要使计算机能够或者可以进行多种工作。或…

    Linux干货 2016-10-14
  • 如何加密/混乱C源代码

    之前发表了《6个变态的C语言Hello World程序》[酷壳链接] [CSDN链接],主要是是像大家展示了一些C语言的变态玩法。也向大家展示了一下程序是可以写得让人看不懂的,在那篇文章中,可以看到很多人的留言,很多人都觉得很好玩,是的,那本来是用来供朋友们“消遣作乐”,供娱乐娱东而已,不必太过认真。 不过,通过这种极端的写法,大家可以看到源代码都可以写得那…

    Linux干货 2016-05-08
  • 软连接与硬链接区别

    前言: 今天学习了文件系统,简单的接触到文件系统构成的原理。原来我们不管在linux和win上面删除某个文件只是删除一个链接而已。而linux把链接分为软链接和硬链接。接下来我们就从文件系统构成的基本原理出发来说明下linux软链接和硬链接的区别。 文件系统简述: linux的哲学就是一切皆文件。为了方便人们的使用,我们可以通过看文件名来区分不同的文件。但作…

    Linux干货 2016-10-31

评论列表(1条)

  • Kaydence
    Kaydence 2017-04-24 05:08

    Intéressant cet article, on parle souvent du vent dans le SEO, mais jamais du néant!Et pourtant il est vraiment important de savoir gérer l’espace, un peu comme sa respiration dans une longue phrase. Sinon le visiteur/auditeur décroche et zappe…Ca me rappelle deux acronymes ricains que j&oequr;affsctionne : KISS, « keep it stupid and simple » et le fameux « less is more » !