前言

Apache至少需要apr、apr-util、pcre组件的支持。

APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期 的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。随着Apache的进一步开 发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,不过由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR。

APR-util是在APR的基础上提供了更多的数据结构和操作系统封装接口。APR-util依赖于APR,必须先安装APR再安装APR-util。

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库。

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)

1.查询是否安装了apache服务器httpd

[root@localhost src]# rpm -qa|grep httpd

httpd-2.4.6-45.el7.centos.x86_64

httpd-tools-2.4.6-45.el7.centos.x86_64
2.卸载系统自动装的apache服务器httpd

[root@localhost src]# httpd -k stop     #停止httpd服务器

[root@localhost src]# yum remove httpd    #卸载httpd服务器

4 下载httpd-2.4.25   apr-1.5.2  apr-util-1.5.4  pcre-8.40

[root@localhost src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.25.tar.gz

[root@localhost src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.5.2.tar.gz

[root@localhost src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.5.4.tar.gz

[root@localhost src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
5 检查系统是否安装了GCC

[root@localhost src]# gcc

bash: gcc: 未找到命令...      #出现未找到命令提示,说明没有安装GCC
6 安装GCC和gcc-c++

[root@localhost src]# yum -y install gcc

[root@localhost pcre-8.40]# yum -y install gcc-c++

注意:如果没有安装gcc-c++,那么在 执行./configure  -prefix=/usr/local/pcre 时会报 configure: error: You need a C++ compiler for C++ support. 错误

7 将下载的压缩文件拷贝到/usr/local目录下

[root@localhost src]# cp apr-1.5.2.tar.gz /usr/local

[root@localhost src]# cp apr-uril-1.5.4.tar.gz /usr/local

[root@localhost src]# cp httpd-2.4.25.tar.gz  /usr/local

8 编译安装apr-1.5.2

#解压缩apr文件

[root@localhost local]# tar -zxvf apr-1.5.2.tar.gz

#改变目录到apr-1.5.2

[root@localhost local]# cd apr-1.5.2

#指定apr的安装目录为/usr/local/apr 配置

[root@localhost apr-1.5.2]# ./configure -prefix=/usr/local/apr

#编译安装

[root@localhost apr-1.5.2]# make && make install

9 编译安装 apr-uril-1.5.4

#解压缩apr-util文件

[root@localhost local]# tar -zxvf apr-util-1.5.4.tar.gz

#改变目录到apr-util-1.5.4/

[root@localhost local]# cd apr-util-1.5.4/

#指定apr-util的安装路径,指定apr-util所对应的apr

[root@localhost apr-util-1.5.4]# ./configure  -prefix=/usr/local/apr-util  -with-apr=/usr/local/apr

#编译安装

[root@localhost apr-util-1.5.4]# make && make install
10 编译安装pcre

#卸载系统自带的pcre

[root@localhost apr-util-1.5.4]# rpm -qa pcre

pcre-8.32-15.el7_2.1.x86_64

#解压缩apr-util文件

[root@localhost local]# tar -zxvf pcre-8.40.tar.gz 

#改变目录到pcre-8.40/

[root@localhost local]# cd pcre-8.40/

#指定prce的安装路径,指定apr-util所对应的apr

[root@localhost pcre-8.40]# ./configure  -prefix=/usr/local/pcre

#编译安装(make是编译 make install是安装)

[root@localhost pcre-8.40]# make && make install

11 编译安装apache

编译和安装apache分为动态、静态两种方式。动态编译是指在以后的使用中随时调整配置文件就可以加载模块;静态则相反,在编译时就决定了相应的模块。

#解压缩httpd-2.4.25文件

[root@localhost local]# tar -zxvf httpd-2.4.25.tar.gz

#改变目录到httpd-2.4.25/ 

[root@localhost local]# cd httpd-2.4.25/

#配置

[root@localhost httpd-2.4.25]# ./configure -prefix=/usr/local/apache2 -sysconfdir=/etc/httpd -enable-so -enable-rewrite -with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util -with-pcre=/usr/local/pcre

#编译安装

[root@localhost httpd-2.4.25]#make && make install

12配置apache防火墙

#永久开放http服务

[root@localhost httpd-2.4.25]# firewall-cmd --permanent --add-service=http

success

#重新加载防火墙

[root@localhost httpd-2.4.25]# firewall-cmd --reload

success

12 启动,停止apache服务

#编辑httpd.conf文件

[root@localhost httpd-2.4.25]#vi /etc/httpd/httpd.conf

在#ServerName www.example.com:80 下增加下面的语句

 ServerName localhost:80

#使用脚本控制Apache,启动服务

[root@localhost ~]#  /usr/local/apache2/bin/apachectl start

#使用脚本控制Apache,停止服务

[root@localhost ~]#  /usr/local/apache2/bin/apachectl stop

#服务启动后,在浏览器输入http://localhost浏览器内容显示出it works,该内容存在于/usr/local/apache2/htdocs/index.html文件中

13 设置apache开机启动

方法一

1、将apachectl命令拷贝到/etc/init.d目录下,改名为httpd

# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

2、编辑/etc/init.d/httpd文件,在第1行#!/bin/sh的后面添加如下两行

# vi /etc/init.d/httpd

# chkconfig: 2345 70 30   //注意:前面的#号是要保留的

# description: Apache //注意:前面的#号是要保留的

其中,所增加的第二行中三个数字,第一个表示在运行级别2345下启动Apache,第二、三是关于启动和停止的优先级配置。

3、Apache服务尚未被添加到chkconfig列表中,需要使用–add参数将其添加进去

[root@localhost init.d]# chkconfig --add httpd

[root@localhost init.d]# chkconfig --list httpd

通过上面的设置,每次开机时apache服务都是自动启动的

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 

      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。

      欲查看对特定 target 启用的服务请执行

      'systemctl list-dependencies [target]'。

httpd              0:关    1:关    2:开    3:开    4:开    5:开    6:关

注:chkconfg是检查,设置系统的各种服务。

chkconfg语法如下:

chkconfig --list [name]

chkconfig --add name

chkconfig --del name

chkconfig [--level levels] name <on|off|reset>

chkconfig [--level levels] name

方法二: 将服务加到/etc/rc.d/rc.local中 vi /etc/rc.d/rc.local 添加以下内容

/usr/local/apache/bin/apachectl start

14 去除开机启动

[root@localhost ~]# chkconfig --del httpd

[root@localhost init.d]# rm -f httpd

vi /etc/rc.d/rc.local 删除以下内容

/usr/local/apache/bin/apachectl start

重起计算机

centos7下源码编译方式安装httpd的更多相关文章

  1. redhat6.3下源码编译方式安装最新版git

    在linux下安装git,通过yum方式安装的不是最新版本. 要替换最新版需要以下操作. 1.安装依赖包 # yum install curl-devel expat-devel gettext-de ...

  2. CentOS7下源码包方式安装Erlang

    1.官网上下载源码包:OTP 19.1 Source File 2.把源码放在source目录中 , 解压 :tar -zxvf otp_src_19.1.tar.gz [或者 直接下载 rpm包 e ...

  3. CentOS7下源码包方式安装rabbitmq

    1.先安装erlang http://www.cnblogs.com/justphp/p/6093880.html 2.下载rabbitmq rpm包: wget http://www.rabbitm ...

  4. Centos7下源码编译安装python3.6

    测试环境: 操作步骤: 1. 下载Python源码包(python3.6.0) 官网下载地址:https://www.python.org/downloads/ 搜狐下载地址:http://mirro ...

  5. Centos7下源码编译安装与配置redis5.0

    1.下载redis5.0源码包 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 2.检查是否安装过之前的历史版本 rpm -qa|g ...

  6. 64位CentOS源码编译方式安装wine

    说明:本文仅作本人笔记的之用,仅供参考.可能因不同环境而不同. 1. 从官网下载最新版的wine-1.6.2.tar.gz 2. 安装相关的包(这里是我安装的,可能由于不同系统已经安装的包不同而不一样 ...

  7. centos7下源码方式安装gitlab8.9+发送邮件+ldap

    CentOS7下源码方式安装gitlab 环境描述 操作系统: centos7 redis: >=2.8 mysql >=5.5.14 git >=2.7.4 架构设计 一台gitl ...

  8. Centos7.X 源码编译安装subversion svn1.8.x

    说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...

  9. inux centos7下源码 tar安装5.7.26详解

    inux centos7下源码 tar安装5.7.26图文详解 官网地址 https://dev.mysql.com/downloads/mysql/ 1.卸载Linux系统上自带的mysql插件(o ...

随机推荐

  1. 2. Mysql数据库的入门知识

    2. Mysql数据库的入门知识 (1)打开Windows系统提供的服务查看相应的服务. (2)在Windows任务管理器的进程中查看 (3)使用命令行管理windows的Mysql数据库服务. Ne ...

  2. 正则表达式、re模块

    正则表达式 一说规则我已经知道你很晕了,现在就让我们先来看一些实际的应用.在线测试工具 http://tool.chinaz.com/regex/ 正则表达式是用来匹配字符串非常强大的工具,在其他编程 ...

  3. ERP项目实施记录03

    今天继续测试,3周了,终于弄到采购进货.

  4. Docker多主机网络

    网络术语概念 二层交换技术:工作在OSI七层网络模型的第二层,通过MAC地址进行帧转发 三层交换技术:也称为IP交换技术,工作在OSI七层网络模型的第三层,通过IP地址进行包转发.它解决了局域网中网段 ...

  5. bootstrap modal 弹出其他页面

    此文是可以的,是复制的然后粘贴 1.不使用js 方式 1.1 按钮 <a class=" btn default" href="ui_modals_ajax_sam ...

  6. ASP.NET 前端Ajax获取数据并刷新

    控制器中↓ /// <summary> /// 根据ID来进行展示数据 /// </summary> /// <param name="instru_id&qu ...

  7. React中ref的使用方法

    React中ref的使用方法 在react典型的数据流中,props传递是父子组件交互的唯一方式:通过传递一个新的props值来使子组件重新re-render,从而达到父子组件通信.当然,就像reac ...

  8. CSS中隐藏内容的3种方法

    CSS中隐藏内容的3种方法 一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等. 1.使用display:none来隐藏所有内容 display:none可 ...

  9. node 下查看安装插件的最新版本号的方法

    例如查看extract-text-webpack-plugin的最新版本号 (不一定时本地安装的插件的版本号) npm view extract-text-webpack-plugin version ...

  10. ES6:export default 和 export 区别

    export default 和 export 区别: 1.export与export default均可用于导出常量.函数.文件.模块等 2.你可以在其它文件或模块中通过import+(常量 | 函 ...