Centos7 源码安装 Apache,centos7apache


一 源代码安装的好处:

1、自定义软件功能
2、优化编译参数,提高性能
3、解决不必要的软件间依赖

二 前期准备

首先下载软件包
我用的是下面三个版本的源码包
httpd-2.4.33 https://download.csdn.net/download/weixin_39060728/10362415
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/
tar -zxvf httpd-2.4.33.tar.gz  -C /usr/local/src/

接下来我们可以在指定目录下找到它们如下图

四 安装APR

[root@localhost src]# cd /usr/local/src/apr-1.6.3/
[root@localhost apr-1.6.3]# ./configure --prefix=/usr/local/apr       #配置安装目录  
[root@localhost apr-1.6.3]# make    #编译
[root@localhost apr-1.6.3]# make install     #安装

五 安装apr-util

[root@localhostapr-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      #编译
[root@localhost apr-util-1.6.1]# make install         #安装

在编译时会出现如下错误:

解决办如下
yum –disablerepo=* –enablerepo=c7-media install expat-devel -y

六 安装httpd

[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

此时会出现如下错误:

解决办法如下:
cp -r /usr/local/src/apr-1.6.3/ ./srclib/apr
cp -r /usr/local/src/apr-util-1.6.1/ ./srclib/apr-util
继续配置会出现如下错误:
解决办法是安装PCRE
yum –disablerepo=* –enablerepo=c7-media install pcre-devel -y
继续配置就会顺利完成
然后编译并安装
make && make install

七 启动http服务

切换到/usr/local/apache/bin/目录下
[root@localhost bin]# ./apachectl start
可通过查看80端口是否打开来确认http服务的状态
[root@localhost bin]# netstat -tupln |less

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      897/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1000/master         
tcp6       0      0 :::80                   :::*                    LISTEN      64887/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      897/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1000/master         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           707/dhclient        
udp        0      0 0.0.0.0:9457            0.0.0.0:*                           707/dhclient        
udp        0      0 127.0.0.1:323           0.0.0.0:*                           551/chronyd         
udp6       0      0 :::40391                :::*                                707/dhclient        
udp6       0      0 ::1:323                 :::*                                551/chronyd         

此时只要关闭防火墙便可在浏览器中测试

如果想修改网页内容只需切换到/usr/local/apache/htdocs/目录下编辑index.html如图:

八 后续处理:

为了启动和停止http服务我们需要修改搜索路径
操作如下:
编辑/etc/profile


为了方便使用man手册需修改man的搜索路径步骤如下:
执行vim /etc/man_db.conf 所做改动如图所示

改写apache动态链接库的搜索路径步骤如下:
执行vim /etc/ld.so.conf.d/apache.conf
编辑如图所示

为了方便后期的操作可以在/etc/rc.d/init.d/目录下编辑一个名为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/httpd
start () {
    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

Apache源码安装到此也就完成了

相关内容

    暂无相关文章