CentOS 7 编译安装 httpd 2.4

**编译说明和准备:**安装httpd-2.4,依赖于apr-1.4+, apr-util-1.4+
#安装相关包:

[root@centos7 ~]#yum -y install gcc make pcre-devel openssl-devel expat-devel`

在这里插入图片描述

#下载源代码并解压缩:
分别执行以下三条命令:

[root@centos7 ~]#wget https://downloads.apache.org/apr/apr-1.7.0.tar.bz2
[root@centos7 ~]#wget https://downloads.apache.org//apr/apr-util-1.6.1.tar.bz2
[root@centos7 ~]#wget https://downloads.apache.org//httpd/httpd-2.4.46.tar.bz2

在这里插入图片描述
执行ls查看 可以看到

[root@centos7 ~]#ll
total 10984
-rw-------. 1 root root    1371 Apr  8 08:46 anaconda-ks.cfg
-rw-r--r--. 1 root root  872238 Jul  6  2020 apr-1.7.0.tar.bz2
-rw-r--r--. 1 root root  428595 Jul  6  2020 apr-util-1.6.1.tar.bz2
-rw-r--r--. 1 root root 7187805 Aug  5  2020 httpd-2.4.46.tar.bz2

在这里插入图片描述
**编译安装httpd-2.4 **

1. 编译安装apr
(在编译安装之前,要先解压apr 执行命令,然后CD进入apr-1.7.0 再指定路径到/apps/apr 后安装,过程如下:

[root@centos7 ~]#tar xvf apr-1.7.0.tar.bz2
[root@centos7 ~]#cd apr-1.7.0
[root@centos7 apr-1.7.0]#./configure --prefix=/apps/apr
[root@centos7 apr-1.7.0]#make && make install

在这里插入图片描述
2. 编译安装apr-util

[root@centos7 ~]#tar xvf apr-util-1.6.1.tar.bz2 
[root@centos7 ~]#cd ./apr-util-1.6.1/
[root@centos7 apr-util-1.6.1]#./configure --prefix=/apps/apr-util --with-apr=/apps/apr/
[root@centos7 apr-util-1.6.1]#make -j 2 && make install

在这里插入图片描述
3. 编译安装 httpd-2.4

[root@centos7 ~]#tar xvf httpd-2.4.46.tar.bz2 
[root@centos7 ~]#cd ./httpd-2.4.46
[root@centos7 httpd-2.4.46]#./configure --prefix=/apps/httpd24 \    #这里后面跟换行符 表示后面还需要输入数据 输入后按回车
 --enable-so \
 --enable-ssl \
 --enable-cgi \
 --enable-rewrite \
 --with-zlib \
 --with-pcre \
 --with-apr=/apps/apr/ \
 --with-apr-util=/apps/apr-util/ \
 --enable-modules=most \
 --enable-mpms-shared=all \
 --with-mpm=prefork
 [root@centos7 httpd-2.4.46]#make -j 4 && make install

在这里插入图片描述
安装结果如图
在这里插入图片描述
编译安装后配置
Httpd编译过程:/apps/httpd24/build/config.nice
自带的服务控制脚本:/apps/httpd24/bin/apachectl

1、创建专用用户

root@centos7 ~]#useradd -s /sbin/nologin -r apache

2、指定运行httpd的用户

[root@centos7 ~]#vim /apps/httpd24/conf/httpd
[root@centos7 ~]#cat /apps/httpd24/conf/httpd
user apache
group apache

在这里插入图片描述
3、配置环境变量

[root@centos7 ~]#echo 'PATH=/apps/httpd24/bin:$PATH' > /etc/profile.d/httpd.sh
. /etc/profile.d/httpd.sh

在这里插入图片描述
4、查看安装的版本:
在这里插入图片描述
5、配置帮助

[root@centos7 ~]#vim /etc/man_db.conf

在这里插入图片描述
6、设置开机自动启动

[root@centos7 ~]#vim /etc/rc.d/rc.local
/apps/httpd24/bin/apachectl start
[root@centos7 ~]#chmod +x /etc/rc.d/rc.local

在这里插入图片描述
创建service unit文件(CentOS 7 以上版本)

[root@centos7 ~]#cat /usr/lib/systemd/system/httpd24.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Service]
Type=forking
#EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/apps/httpd24/bin/apachectl start
#ExecStart=/apps/httpd24/bin/httpd $OPTIONS -k start
ExecReload=/apps/httpd24/bin/apachectl graceful
#ExecReload=/apps/httpd24/bin/httpd $OPTIONS -k graceful
ExecStop=/apps/httpd24/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target

至此,安装完成

补充;
在这里插入图片描述
今天特意测试了一下,发现了这个报错;

[root@centos7 ~]#systemctl start httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

在这里插入图片描述
停止后再重启 还是一样,有点纠缠不休的感觉;
在这里插入图片描述
不但 没有报错日志,服务还启动不了
在这里插入图片描述
执行查看 ,一堆httpd服务在运行;

[root@centos7 ~]#ps aux |grep http

在这里插入图片描述
二话不说直接killall httpd 有点拎着两把菜刀从花果山砍到南天门,再砍到灵山的意思;
在这里插入图片描述
再次重启 查看端口 ok了 ,服务也ok了
在这里插入图片描述
测试网页 也都可以了。
在这里插入图片描述
总结一句话。遇到问题不要怕,尽量不去网上查,开着空调还出汗,撸起袖子就是干!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值