作者【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
经测试网页能正常访问,大功告成
四、踩坑总结
1、编译软件前需看清楚,软件编译环境需求,可以避免不必要的麻烦。
2、编译出错后,用reset清理系统环境,排除其他干扰,再继续操作。
3、碰到错误,先根据错误提示以及安装帮助文档排错。
4、确实解决不了才到社区查找相关资料。
作者【Jev Tse】【版权所有】
原创文章,作者:Jev Tse,如若转载,请注明出处:http://www.178linux.com/61405