centos7下源码编译方式安装httpd
前言
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的更多相关文章
- redhat6.3下源码编译方式安装最新版git
在linux下安装git,通过yum方式安装的不是最新版本. 要替换最新版需要以下操作. 1.安装依赖包 # yum install curl-devel expat-devel gettext-de ...
- CentOS7下源码包方式安装Erlang
1.官网上下载源码包:OTP 19.1 Source File 2.把源码放在source目录中 , 解压 :tar -zxvf otp_src_19.1.tar.gz [或者 直接下载 rpm包 e ...
- CentOS7下源码包方式安装rabbitmq
1.先安装erlang http://www.cnblogs.com/justphp/p/6093880.html 2.下载rabbitmq rpm包: wget http://www.rabbitm ...
- Centos7下源码编译安装python3.6
测试环境: 操作步骤: 1. 下载Python源码包(python3.6.0) 官网下载地址:https://www.python.org/downloads/ 搜狐下载地址:http://mirro ...
- Centos7下源码编译安装与配置redis5.0
1.下载redis5.0源码包 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 2.检查是否安装过之前的历史版本 rpm -qa|g ...
- 64位CentOS源码编译方式安装wine
说明:本文仅作本人笔记的之用,仅供参考.可能因不同环境而不同. 1. 从官网下载最新版的wine-1.6.2.tar.gz 2. 安装相关的包(这里是我安装的,可能由于不同系统已经安装的包不同而不一样 ...
- centos7下源码方式安装gitlab8.9+发送邮件+ldap
CentOS7下源码方式安装gitlab 环境描述 操作系统: centos7 redis: >=2.8 mysql >=5.5.14 git >=2.7.4 架构设计 一台gitl ...
- Centos7.X 源码编译安装subversion svn1.8.x
说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...
- inux centos7下源码 tar安装5.7.26详解
inux centos7下源码 tar安装5.7.26图文详解 官网地址 https://dev.mysql.com/downloads/mysql/ 1.卸载Linux系统上自带的mysql插件(o ...
随机推荐
- WEB技术路线图
- Spring.NET依赖注入框架学习--简单对象注入
Spring.NET依赖注入框架学习--简单对象注入 在前面的俩篇中讲解了依赖注入的概念以及Spring.NET框架的核心模块介绍,今天就要看看怎么来使用Spring.NET实现一个简单的对象注入 常 ...
- linux命令学习(3):ls命令
ls命令是linux下最常用的命令.ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单.如果ls指定其他目录,那么就会显示指定 目录里的文件及文件夹清单. 通过ls 命令不仅可以查看lin ...
- ASP.NET MVC文章系列
Summary of article list for ASP.NET MVC [Basic] Pro ASP.NET MVC chapter 2 http://www.cnblogs.com/yan ...
- 深入web开发之webserver/servlet容器
可能按照书上的demo,自己就能做个小型网站,但是在并发下是什么情况呢?生成了多少对象?对象的关系又是什么?这些问题都要慢慢弄清楚. ------作为后端工程师,不仅要会增删改查,还要了解servle ...
- Linux----面试
1:tcp和udp的区别 TCP:是面向连接的流传输控制协议,具有高可靠性,确保传输数据的正确性,有验证重发机制,因此不会出现丢失或乱序. UDP:是无连接的数据报服务,不对数据报进行检查与修改,无须 ...
- 启动elk中elasticsearch服务报错which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
解决办法: vi /etc/sysconfig/elasticsearch JAVA_HOME=/usr/local/java sudo systemctl restart elasticsearch ...
- 洛谷P1182 数列分段【二分】【贪心】
题目:https://www.luogu.org/problemnew/show/P1182 题意: 有n个数,要分成连续的m段.将每段中的数相加,问之和的最大值的最小值是多少. 思路: 和P1316 ...
- 蚂蚁金服缘何自研Service Mesh?
2018年,微服务方兴未艾,Service Mesh(服务网格)又快速崛起.有观点认为,2018年可被称之为“Service Mesh元年”,在未来两年中,Service Mesh将迎来爆发式增长,成 ...
- Global Error Handling in ASP.NET Web API 2(webapi2 中的全局异常处理)
目前,在Web API中没有简单的方法来记录或处理全局异常(webapi1中).一些未处理的异常可以通过exception filters进行处理,但是有许多情况exception filters无法 ...