记在CentOS7的httpd源码包安装的实验过程

  • 记在CentOS7的httpd源码包安装的实验过程已关闭评论
  • 121 次浏览
  • A+
所属分类:linux技术
摘要

作者:lonely-sailhttpd依赖包:apr、apr-util(官网下载:http://apr.apache.org/)、pcre(官网下载:http://pcre.org/)


记CentOS7的httpd源码包安装的实验过程

注:以下纯属本人(小白)见解,如有错误请求各位大佬帮忙指正。新人写博有啥错误也麻烦各位大佬给个指点。

作者:lonely-sail

相关下载:

httpd依赖包:apr、apr-util(官网下载:http://apr.apache.org/)、pcre(官网下载:http://pcre.org/)

软件包:httpd

官网下载:http://httpd.apache.org/

链接:https://pan.baidu.com/s/1kjp345efsq-N9FyPDVFKSw

提取码:wdgs

apr推荐用:apr-util-1.6.1和 apr-1.7.0

pcre推荐用:pcre-8.39

任务:在CentOS7安装apache(版本httpd-2.4.39)

实验开始:

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

rpm -qa | grep “gcc”---检测是否安装了编译器

步骤一

下载好安装包并上传到root的桌面

记在CentOS7的httpd源码包安装的实验过程

步骤二

在/usr/local这个目录创建一个安装目录

我创建了一个名为java的目录作为安装依赖包和软件包的路径

记在CentOS7的httpd源码包安装的实验过程

步骤三

tar -zxf apr-1.7.0.tar.gz -C /usr/local/java ---解压缩apr-1.7.0

记在CentOS7的httpd源码包安装的实验过程

./configure --prefix=/usr/local/java/apr ---执行configure并指定安装路径

make ---编译

make install ---安装

记在CentOS7的httpd源码包安装的实验过程

步骤四

tar -zxf apr-util-1.6.1.tar.gz -C /usr/local/java ---解压缩apr-util-1.6.1

记在CentOS7的httpd源码包安装的实验过程

使用./configure --prefix=/usr/local/java/apr-util时

记在CentOS7的httpd源码包安装的实验过程

这里报错:意思是要求用--with-apr 参数指明apr的安装路径

/configure -help | grep apr 可通过帮助命令查看--with-apr的作用

再用./configure --prefix=/usr/local/java/apr-util --with-apr=/usr/local/java/apr就成功了

make时又出现新错误

记在CentOS7的httpd源码包安装的实验过程

上网查看是因为缺少的expat库要进行安装

由于自带的网络yum源没用我自己去阿里整了阿里的centos7的yum源

首先备份系统的yum源文件

记在CentOS7的httpd源码包安装的实验过程

阿里镜像源:https://developer.aliyun.com/mirror/?spm=a2c6h.25603864.0.0.66127e091uICjn

记在CentOS7的httpd源码包安装的实验过程

yum install -y expat-devel

记在CentOS7的httpd源码包安装的实验过程

再make就成功了

make install

记在CentOS7的httpd源码包安装的实验过程

步骤五

tar -zxf pcre-8.39.tar.gz -C /usr/local/java ---解压缩pcre-8.39

记在CentOS7的httpd源码包安装的实验过程

遇到这种情况我是重新上传就成功解压缩了

记在CentOS7的httpd源码包安装的实验过程

./configure --prefix=/usr/local/java/pcre

make

make install

记在CentOS7的httpd源码包安装的实验过程

步骤六

tar -jxf httpd-2.4.39.tar.bz2 -C /usr/local/java

记在CentOS7的httpd源码包安装的实验过程

虽然用 ./configure --prefix=/usr/local/apache24 --with-apr=/usr/local/java/apr --with-apr-util=/usr/local/java/apr-util --with-pcre=/usr/local/java/pcre成功执行了./configure

但用make编译时出现了错误

记在CentOS7的httpd源码包安装的实验过程

上网查看了collect2: error: ld returned 1 exit status 错误分析

当在不同文件中有相同函数定义时候会出现collect2: error: ld returned 1 exit status 错误。

有人觉得是apr-util的版本兼容问题,用降低apr-util的版本解决了此问题。

但我觉得这样不是按错误分析的结论解决的方法,于是经过我查找,发现可以用--with-included-apr的一个参数选项解决的办法

阅读httpd-2.4.39的INSTALL文件里有说明

下载apr和apr-Util的源码压缩包并解压后放到:httpd源码目录/srclib/apr与 和 httpd源码目录/srclib/apr-util (命名中不要带版本号),并且执行./configure时使用: --with-included-apr

记在CentOS7的httpd源码包安装的实验过程

--with-included-apr 同时作用于apr和apr-util

于是我先make clean清理下

再把解压缩的apr-1.7.0和apr-util-1.6.1放到了httpd-2.4.39的srclib并重命名为apr和apr-util

记在CentOS7的httpd源码包安装的实验过程

我觉得应该是分开编译过的apr和apr-util有相同函数定义,于是我打算让编译httpd时一同编译apr和apr-util应该就不会出现这个问题

可能是apr1.7.0和apr-util-1.6.1有相同函数定义,我看别人降低到apr-util-1.3.11就不会,网盘里有。

于是乎我就只用--with-pcre指明pcre的安装路径,apr和apr-util我就不用指明了,使用 .configure --with-included-apr参数选项就行

./configure --with-included-apr --prefix=/usr/local/java/apache24 --with-pcre=/usr/local/java/pcre

再make就成功了

make install

记在CentOS7的httpd源码包安装的实验过程

安装成功

启动服务

cd apache24/bin/

./apachectl start 启动服务

记在CentOS7的httpd源码包安装的实验过程

查看端口号是否开启

ss -antpl | grep 80

记在CentOS7的httpd源码包安装的实验过程

可以看到已经处于监听状态

再用127.0.0.1访问一下自己看看是否会出现It works!

记在CentOS7的httpd源码包安装的实验过程

实验结束!