前言

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. [c#基础]使用抽象工厂实现三层 和反射

    引言 昨天加了一天班,今天闲来无事,就在想如何将之前的三层和最近一直在学的设计模式给联系在一起,然后就动手弄了个下面的小demo. 项目结构 项目各个层实现 Wolfy.Model层中有一个抽象类Ba ...

  2. ERP项目实施记录02

    今天去第三方公司(B公司)考察: 公司成立:2011年12月 注册地:深圳 深圳:2~3个业务员 东莞:5个开发人员,据说也是实施人员 全功能者:BOSS A公司因战略调整,要将业务"下放& ...

  3. Hyper-V 与 VMware 和 vbox 的不兼容

    新装的win10 开始先装到docker 装之前必须要装Hyper-V 后来装vbox 并且安装了Centos7系统也用得起,后来不知道怎么win10好像升级了.再启动vbox 开启centos7就报 ...

  4. Codeforces 698A - Vacations - [简单DP]

    题目链接:http://codeforces.com/problemset/problem/698/A 题意: 有 $n$ 天假期,每天有四种情况:0.体育馆不开门,没有比赛:1.体育馆不开门,有比赛 ...

  5. [No0000ED]IPSec策略之管理

    IP安全策略 @echo off :again set num= set ippolicyname= set ismmpfs= set keytime= set keyexpress= set new ...

  6. DHCP协议和PXE

    在学习IP地址基本概念之后,需要了解到如果需要和其他机器通讯,我们就需要一个通讯地址,我们需要给网卡配置一个地址. 如何配置 IP 地址? 可以用命令行自己配置一个地址.可以使用 ifconfig,也 ...

  7. angularjs 在 iframe 里面无法正确显示 src 指定的内容

    原 controller : $scope.myURL = URL; 页面: <iframe ng-src='{{myURL}}' class="width-100 height-10 ...

  8. arcengine实现右键菜单打开/关闭所有图层

    参考资料:  http://developer.51cto.com/art/201104/256774.htm 参照后自己做的: 关于右键菜单的几个有价值的网址: http://blog.csdn.n ...

  9. ionic中调用cordova插件upload上传的问题,拍照and调用相册

    第一次写博客直接怼代码 首先应该 ionic cordova plugin add cordova-plugin-file-transfer npm install --save @ionic-nat ...

  10. 【Java】一台服务器配置多个Tomcat

    需求缘由 最近接收了一个新的工具业务:ipublish发布系统,刚接手这个业务的时候,发现每次发布新的代码 需要到群里告知大家,我要停服务几分钟,准备更新代码啦.这尼玛 哪个公司都不敢这么牛逼的和用户 ...