编译前准备 首先下载:httpd-2.4,apr-1.4以上, apr-util-1.4以上

httpd-2.4.48.tar.gz下载地址:https://downloads.apache.org/httpd/httpd-2.4.48.tar.gz
apr-1.7.0.tar.gz下载地址:https://downloads.apache.org/apr/apr-1.7.0.tar.gz
apr-util-1.6.1.tar.gz下载地址:https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz

解压httpd包 tar -zxvf httpd-2.4.48.tar.gz

解压apr-util和apr包,并将包放在加压后的httpd/srclib/目录下

tar  -zxvf   apr-1.7.0.tar.gz
tar  -zxvf   apr-util-1.6.1.tar.gz
cp -ar  ./apr-1.7.0 ./httpd-2.4.48/srclib/apr
cp -ar  ./apr-util-1.6.1 ./httpd-2.4.48/srclib/apr-util

安装依赖包

yum -y install gcc make pcre-devel openssl-devel expat-devel

根目录创建文件夹:/apps/httpd24

进入httpd-2.4.48/下启动

./configure --prefix=/apps/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite -with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

配置解释

--enable-so 启动模块动态装卸载功能

--enable-ssl 编译ssl模块,要先安装完毕

--enable-cgi 支持cgi机制(能够让静态web服务器能够解析动态请求的一个协议)

--enable-rewrite 支持url重写(重定向功能)

--with-zlib 支持数据包压缩

--with-pcre 支持正则表达式

--with-apr=/usr/local/apr 指明依赖的apr所在目录(注意必须指明路径)

--with-apr-util=/usr/local/apr-util/ 指明依赖的apr-util所在的目录

--enable-modules=[all | most | ……] 启用的模块。all表示启用所有模块,most表示启用大多数常用模块

--enable-mpms-shared=all 以共享方式编译的模块。 其他选项为[prefork | worker | event | all]

--with-mpm=prefork 指明httpd的工作方式为prefork 。 3种MPM模块为 [prefork | worker | event]

linux 安装Apache HTTP Server 2.4.48版本详细教程_apache

编译并安装

make -j 8 && make install

配置环境变量

echo 'PATH=/apps/httpd24/bin:$PATH' > /etc/profile.d/httpd.sh && . /etc/profile.d/httpd.sh

编译安装Apache以后,无法启动httpd服务,提示unit not found的主要原因是没有把httpd服务添加到Linux的service里面

1 复制到init.d 并重命名为httpd

cp /apps/httpd24/bin/apachectl  /etc/rc.d/init.d/httpd

2链接文件的S61是启动时的序号。当init.d目录下有httpd脚本后,我们就可以通过service命令来启动关闭apache了

ln -s /etc/rc.d/init.d/httpd  /etc/rc.d/rc3.d/S61httpd

3编辑httpd脚本,在第2行(#!/bin/sh下面)添加如下注释信息(包括#):

*# chkconfig: 35 61 61
*# description: Apache**

第一行的3个参数意义分别为:在哪些运行级别启动httpd(3,5);启动序号(S61);关闭序号(K61)。注意:第二行的描述必须要写!

保存后,执行

chkconfig --add httpd     #所有开机模式下自启动,另外chkconfig httpd on 表示345模式下自启动

执行

service httpd start

如果报错:::AH00534:httpd的:配置错误:没有MPM加载 编辑vim /apps/httpd24/conf/httpd.cof加上一句话

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

保存即可,然后启动