源代码安装

一 源代码安装的好处:
1、自定义软件功能
2、优化编译参数,提高性能
3、解决不必要的软件间依赖
二 前期准备
首先下载软件包
我用的是下面三个版本的源码包
httpd-2.4.34 http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.34.tar.gz
apr-1.6.3 http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
apr-util-1.6.1 https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
然后安装开发者工具
yum –disablerepo=* –enablerepo=c7-media groupinstall “Development Tools” -y
三解压缩
为了方便查找我们为它指定解压缩路径
tar -zxvf apr-1.6.3.tar.gz -C /usr/local/src/
tar -zxvf apr-util-1.6.1.tar.gz -C /usr/local/src/
ar -zxvf httpd-2.4.33.tar.gz -C /usr/local/src/
接下来我们可以在指定目录下找到它们如下图
源代码安装_第1张图片
四安装APR
[root@localhost apr-1.6.3]# ./configure –prefix=/usr/local/apr # 配置安装目录
[root@localhost apr-1.6.3]#make && make install #编译并安装
五安装apr-util
[root@localhost src]# cd apr-util-1.6.1/
[root@localhost apr-util-1.6.1]# yum –disablerepo=* –enablerepo=c7-media install expat-devel
-y
[root@localhost apr-util-1.6.1]# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr/bin/apr-1-config # 配置安装目录
[root@localhost apr-util-1.6.1]# make && make install #编译并安装
六安装httpd
[root@localhost httpd-2.4.33]# cp -r /usr/local/src/apr-1.6.3/ ./srclib/apr
[root@localhost srclib]# cp -r /usr/local/src/apr-util-1.6.1 ./apr-util
[root@localhost httpd-2.4.33]# yum –disablerepo=* –enablerepo=c7-media install pcre-devel -y
[root@localhost httpd-2.4.33]#./configure \
–prefix=/usr/local/apache \ #配置安装目录
–sysconfdir=/etc/httpd \
–with-apr=/usr/local/apr/bin/apr-1-config \
–with-apr-util=/usr/local/apr-util/bin/apu-1-config \
–with-included-apr #包含apr
七启动http服务
[root@localhost httpd-2.4.33]# cd /usr/local/apache/bin
[root@localhost bin]# ./apachectl start
可通过查看80端口是否打开来确认http服务的状态
[root@localhost bin]# netstat -tupln |less
源代码安装_第2张图片
此时只要关闭防火墙便可在浏览器中测试
[root@localhost init.d]# systemctl stop firewalld
源代码安装_第3张图片
八后续处理
为了启动和停止http服务需要修改搜索路径:
[root@localhost bin]# vim /etc/profile
这里写图片描述
为了方便man手册的使用需要修改man的搜索路径:
[root@localhost bin]# vim /etc/man_db.conf
源代码安装_第4张图片
九编写控制脚本
为了以后对apr服务的重启、启动、停止以及状态的查看,我们需要创建一个控制脚本:
[root@localhost bin]# cd /etc/rc.d/init.d
[root@localhost init.d]# vim httpd
[root@localhost init.d]# chmod a+x httpd #给予可读权限

#!/bin/bash#chkconfig: 2345 20 80
#description: the apache httpd server
prog=/usr/local/apache/bin/httpd
#configfile=/etc/httpd/httpd.conf
lockfile=/var/lock/subsys/httpdstart () {
    if [ -e $lockfile ];then   #判断是否存在锁
        echo -n "the httpd server is started" 
    fi
        echo -n "the httpd server is starting......"
        sleep 3
        $prog -k start &>/dev/null && touch $lockfile && echo -e "[ \033[32m ok \033[0m ]" ||echo -e"[\033[31m fail \033[0m ]"
}                   #启动httpd服务stop () {
    if [ ! -e $lockfile ];then
        echo -n "the httpd server is stoped" 
    else
        echo -n "the httpd server is stoping......"
        sleep 3
        $prog -k stop &>/dev/null && rm -rf $lockfile && echo -e "[ \033[32m ok \033[0m ]" ||echo -e"[\033[31m fail \033[0m ]"
    fi

}                 # 停止httpd服务status (){
  if [ -e $lockfile ];then
   echo -e "the httpd server is \033[32m ACTIVE \033[0m"
      httpdid=`ps aux |grep httpd |head -n 1 |awk '{print $2}'`
   echo -e "PID is $httpdid"
  else
   echo "the httpd server is stoped"
  fi
}               # 查看httpd状态
case "$1" in
start)
    start;;
stop)
    stop;;
restart)
    stop
    start;;
status)
    status;;
*)echo "Usage:start|stop|restart|status"
;;esac

你可能感兴趣的:(源代码安装)