纵有疾风起
人生不言弃

LAMP架构——Apache(httpd)-2.4.29源码安装

      pache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache,Apache官网www.apache.org
    由于httpd2.2和httpd2.4所所使用的Apr库不同,而且centos7系统自带的Apr与之不匹配,所以需要使用yum安装Apr库文件。
[root@dl-001 src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz //2.4源码包

[root@dl-001 src]# wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz //apr-1.6.3r包

[root@dl-001 src]# wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz //apr-util-1.6.1包
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5

说明:下载并解压,以下操作需要进入。

<h3 id="1安装apr包"><a name="t0"></a>1,安装apr包</h3>
[root@dl-001 src]# cd apr-1.6.3
配置:
[root@dl-001 apr-1.6.3]# ./configure --prefix=/usr/local/apr

报错:
configure: error: in `/usr/local/src/apr-1.6.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
//说明:缺少C语言相关的编译器。 

解决办法:
[root@dl-001 apr-1.6.3]# yum install -y gcc*    //安装gcc编译器。  

[root@dl-001 apr-1.6.3]# ./configure --prefix=/usr/local/apr
// 配置成功!

编译和安装:
[root@dl-001 apr-1.6.3]# make 

报错:  
xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录 #include <expat.h> ^ 编译中断。 make[1]: *** [xml/apr_xml.lo] 错误 1
make[1]: 离开目录“/usr/local/src/apr-util-1.6.0”
make: *** [all-recursive] 错误 1

解决办法:
[root@dl-001 apr-1.6.3]# yum -y install expat-devel

[root@dl-001 apr-1.6.3]# make && make install
[root@dl-001 apr-1.6.3]# echo $?
0
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

注意: APR 1.6.2版本有变更,进行了加密设置,进行编译时需要使用如下命令(否则在安装Apache是无法调用该库文件):

[root@dl-001 httpd-2.4.29]# CC="gcc -m64" ./configure --prefix=/usr/local/apr
 
 
 
  • 1

2,安装Apr-util包

[root@dl-001 src]# cd apr-util-1.6.1
[root@dl-001 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@dl-001 apr-util-1.6.1]# echo $?
0

编译和安装:
[root@dl-001 apr-util-1.6.1]# make && make install
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3,安装httpd

[root@dl-001 src]# cd httpd-2.4.29 
[root@dl-001 httpd-2.4.29]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most

报错:
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/  
说明:需要安装库文件pcre

解决办法:

[root@dl-001 httpd-2.4.29]# yum list |grep pcre //查看相关的包

请根据搜索的结果安装下面的包:
[root@dl-001 httpd-2.4.29]# yum install -y pcre-devel

[root@dl-001 httpd--2.4.29]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
[root@dl-001 httpd-2.4.29]# echo $?
0

//编译和安装

[root@dl-001 httpd-2.4.29]# make


[root@dl-001 httpd-2.4.29]# make install
[root@dl-001 httpd-2.4.29]# echo $?
0
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

排查错误

在源码编译安装httpd时,./configure执行无错误,到make时就报错

错误如下:

... /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_ErrorString'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetElementHandler'
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] 错误 1
make[2]: 离开目录“/usr/local/src/httpd-2.4.28/support”
make[1]: *** [all-recursive] 错误 1
make[1]: 离开目录“/usr/local/src/httpd-2.4.28/support”
make: *** [all-recursive] 错误 1
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

说明:缺少了xml相关的库,需要安装libxml2-devel包。直接安装并不能解决问题,因为httpd调用的apr-util已经安装好了,但是apr-util并没有libxml2-devel包支持

1.安装libxml2-devel包
[root@dl-001 ~]# yum install -y libxml2-devel

2.删除apr-util安装目录,并重新编译安装

[root@dl-001 ~]# rm -rf /usr/local/apr-util
[root@dl-001 ~]# cd /usr/local/src/apr-util-1.6.1

# 这一步很重要,必须清除之前配置时的缓存
[root@dl-001 apr-util-1.6.1]# make clean

# 源码安装三步走
[root@dl-001 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@dl-001 apr-util-1.6.1]# make
[root@dl-001 apr-util-1.6.1]# make install
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3.重新编译安装httpd

# 同样要清理之前的缓存十分重要
[root@dl-001 src]# cd /usr/local/src/httpd-2.4.28
[root@dl-001 httpd-2.4.29]# make clean
[root@dl-001 httpd-2.4.29]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
[root@dl-001 httpd-2.4.29]# make
# 这时make没报错了

[root@dl-001 httpd-2.4.29]# make install
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4.启动服务

[root@dl-001 httpd-2.4.29]# cd /usr/local/apache2.4 //切换至Apache2.4目录 

[root@dl-001 apache2.4]# ls 

bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules 

注:较常用目录bin(可执行文件存放目录)、conf(配置文件所在目录)、htdocs(存放一个访问页)、logs(日志文件存放目录)、modules(存放扩展模块)。 

查看Apache所加载的模块:
[root@dl-001 apache2.4]# /usr/local/apache2.4/bin/httpd -M
或者
[root@dl-001 apache2.4]# /usr/local/apache2.4/bin/apachectl -M

启动:

[root@dl-001 apache2.4]# /usr/local/apache2.4/bin/apachectl start
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using fe80::65d2:adc:20d3:8c74. Set the ‘ServerName’ directive globally to suppress this message
#此处错误提示没影响。

检测状态:
[root@dl-001 apache2.4]# ps aux |grep httpd
root 8090 0.0 0.2 144572 2720 ? Ss 23:36 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 8091 0.0 0.1 144572 1996 ? S 23:36 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 8092 0.0 0.1 144572 1996 ? S 23:36 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 8093 0.0 0.1 144572 1996 ? S 23:36 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 8094 0.0 0.1 144572 1996 ? S 23:36 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 8095 0.0 0.1 144572 1996 ? S 23:36 0:00 /usr/local/apache2.4/bin/httpd -k start
root 8116 0.0 0.0 112680 972 pts/4 S+ 23:38 0:00 grep –color=auto httpd
[root@dl-001 apache2.4]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1181/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1790/master

原文链接:https://blog.csdn.net/living_ren/article/details/79197889

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

未经允许不得转载:起风网 » LAMP架构——Apache(httpd)-2.4.29源码安装
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录