Centos 源码安装Apache (经历九九八十一难,终于突出重围)【附加自动化编译安装执行脚本】
一.版本说明
- 操作系统:Centos8
具体信息如下:[root@php htdocs]# cat /proc/version Linux version 4.18.0-147.el8.x86_64 (gcc version 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)) #1 SMP Wed Dec 4 21:51:45 UTC 2019
- Apache包:
Apache:2.4.46.tar.gz - 依赖包:
pcre-8.00.tar.gz
apr-1.7.0.tar.gz
apr-util-1.6.1.tar.gz
二.编译安装
1.找一个目录放下你的文件,这里我使用/root
2.操作与结果
- 操作:
yum -y install tar
yum -y install gcc
yum install -y gcc-c++
yum -y install pcre-devel apr-devel apr-util-devel openssl-devel expat-devel
yum -y install wget
wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.46.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz
- 通过ls命令查看,/root目录下的结果:
3.开始编译与安装
1).分别按照顺序解压编译和安装,顺序是:apr->apr-util->pcre->httpd(如果不按照顺序会报错,不信?你试试)
如何验证有没有安装成功# 解压与改名(自己想改就改哈,这里为了方便操作,所以改了) tar -zxvf apr-1.7.0.tar.gz mv apr-1.7.0.tar.gz apr tar -zxvf apr-util-1.6.1.tar.gz mv apr-util-1.6.1.tar.gz apr-util tar -zxvf pcre-8.00.tar.gz mv pcre-8.00.tar.gz pcre # 编译与安装 # 1.先编译apr cd apr sed -i "s/RM='\$RM'/RM='\$RM -f'/g" configure ./configure --prefix=/usr/local/apr make && make install cd apr-util # 看到没有安装 apr-util需要用到apr 这里知道顺序的重要性了? ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install cd pcre # 看到没有安装 apr-util需要用到apr 这里知道顺序的重要性了? ./configure --prefix=/usr/local/pcre make && make install
安装完成之后目录/usr/local下会有一个文件夹apr
- 开始安装httpd
到这里安装完成了,默认安装完成时,httpd已经启动了,我们关闭防火墙,使用浏览器访问# 这里我们指定我的httpd目录为--prefix=/usr/local/apache tar -zxvf httpd-2.4.46.tar.gz mv httpd-2.4.46.tar.gz httpd cd httpd ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre make && make install
看到It works!说明安装成功了。我首页的index.html在/usr/local/apache/htdocs/目录下
三.自动化脚本
cd /root
yum -y install tar
yum -y install gcc
yum install -y gcc-c++
yum -y install pcre-devel apr-devel apr-util-devel openssl-devel expat-devel
yum -y install wget
wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.46.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz
tar -zxvf apr-1.7.0.tar.gz
mv apr-1.7.0 apr
tar -zxvf apr-util-1.6.1.tar.gz
mv apr-util-1.6.1 apr-util
tar -zxvf pcre-8.00.tar.gz
mv pcre-8.00 pcre
cd /root/apr
sed -i "s/RM='\$RM'/RM='\$RM -f'/g" configure
./configure --prefix=/usr/local/apr
make && make install
cd /root/apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
cd /root/pcre
./configure --prefix=/usr/local/pcre
make && make install
tar -zxvf /root/httpd-2.4.46.tar.gz -C /root
mv /root/httpd-2.4.46 /root/httpd
cd /root/httpd
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
make && make install
firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld
/usr/local/apache/bin/apachectl start
echo "install success!!!"
四.错误提示
-
错误提示:报错:/usr/local/apr-util//lib/libaprutil-1.so: undefined reference to `XML_SetEle
缺少了xml相关的库,需要安装libxml2-devel包。直接安装并不能解决问题,因为httpd调用的apr-util已经安装好了,但是apr-util并没有libxml2-devel包支持。解决方法:
安装libxml2-devel包 [root@localhost ~]# yum install -y libxml2-devel
-
错误提示:致命错误:expat.h:没有那个文件或者目录
解决方法:
安装expat-develyum -y install expat-devel
-
错误提示:apr-1.7.0 rm: cannot remove ‘libtoolT’: No such file or directory
解决方法:使用如下命令打开configure文件 sudo vi configure 找到RM='$RM'修改为RM='$RM -f'
五.QA:
- Q:为什么需要安装pcre、apr、apr-util,这么麻烦?
- A:作者认为,这个就好比,你要写python 首先你要把环境搭建好,比如要安装好python 环境
官方也说了: