(转)CentOS 7.6 上编译安装httpd 2.4.38
原文:https://www.s4lm0x.com/archives/40.html
https://www.cnblogs.com/sunshine-H/p/8110608.html----超详细 值得收藏 linux CentOS 7 配置Apache服务【转发+新增】
https://blog.51cto.com/13525470/2070375----CentOS 7 Apache服务的安装与配置
httpd
是使用排名第一的Web服务器软件. 它可以运行在几乎所有广泛使用的计算机平台上, 由于其跨平台和安全性被广泛使用, 是最流行的Web服务器端软件之一, 当前httpd版本为2.4.38
. 在CentOS 7
上使用yum
方式安装httpd是最简便的方式. 但是由于CentOS 7
自带的htpd版本固定, 有时我们可能需要安装更新版本的httpd, 或者需要开启httpd默认未开启的功能模块, 此时编译httpd源码的安装方式将是我们必须掌握的技能. 本文主要描述基于CentOS7. 6
以源码方式安装httpd-2.4.38
编译安装的步骤与优点
源码的编译安装一般由3个步骤组成
- 配置: configure, 通常依赖gcc编译器,
binutils
,glibc
, 配置软件特性, 检查编译环境, 生成 Makefile文件- configure是一个可执行脚本, 它有很多选项, 在待安装的源码路径下使用命令
./configure –-help
输出详细的选项列表
- configure是一个可执行脚本, 它有很多选项, 在待安装的源码路径下使用命令
- 编译: make
- 安装: make install
- 配置: configure, 通常依赖gcc编译器,
编译安装的优点
- 自定义软件功能
- 优化编译参数,提高性能
- 解决不必要的软件间依赖
- 方便清理与卸载
准备编译环境
操作系统安装时为
Minimal install
方式, 此时需要安装编译器以及编译器所依赖的软件包. 最直接的方式是将Development Tools
整个卡发包组安装, 但开发包组中很多的包是不必要的, 故此只安装必要的软件包
使用阿里云的源安装相关编译环境
cd /etc/yum.repos.d
curl -sO https://mirrors.aliyun.com/repo/epel-7.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache fast
安装gcc以及相关依赖
yum install -y gcc glibc-devel zlib zlib-devel openssl-devel bzip2 bzip2-devel gcc-c++ expat-devel
安装依赖包
编译安装pcre
PCRE
是Perl Compatible Regular Expression的缩写, 是一个Perl的正则表达式模块. HTTP核心模块和rewrite模块都会用到PCRE的正则表达式语法, 所以这个必须安装
cd /usr/local/src
curl -sO https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.bz2
tar xf pcre-8.43.tar.bz2
pcre-8.43
./configure --prefix=/usr/local/pcre
make -j 4
make install
编译安装apr, apr-util
httpd可在windows, linux, unix等多种平台部署, 而并不需要为每种平台都编写不同的代码实现, 因为有apr、apr-util
apr
: apache portable runtime, 类似于JVM, PVM等虚拟机, 为apache提供运行环境. 针对不同平台有不同的apr, httpd通过不同的apr,可运行于不同的平台之上
apr-util
依赖于apr, 需先编译安装apr, 再编译安装apr-util
- 获取源码包并解压编译
cd ..
curl -sO http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.bz2
tar xf apr-1.6.5.tar.bz2
cd apr-1.6.5
./configure --prefix=/usr/local/apr
make -j 4 && make install
cd ..
curl -sO http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.bz2
tar xf apr-util-1.6.1.tar.bz2
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
编译安装httpd
在httpd 2.4 中,
prefork
,worker
,event
作为模块, 可使用配置文件切换在执行配置过程时可使用disable, without, 显式地指定禁用哪些功能, 不依赖哪些程序包等
httpd 2.4中运行httpd的user, group也变成了daemon而不是apache, 所以在编译之前无需创建apache用户与组
- 获取源码包并解压
cd ..
curl -sO http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.38.tar.bz2
tar xf httpd-2.4.38.tar.bz2
cd httpd-2.4.38
- 编译前, 隐藏版本信息
- 大概是在
include/ap_release.h
文件中的第40-46行
- 大概是在
vim include/ap_release.h
#define AP_SERVER_BASEVENDOR "Apache Software Foundation" #服务的供应商名称
#define AP_SERVER_BASEPROJECT "Apache HTTP Server" #服务的项目名称
#define AP_SERVER_BASEPRODUCT "Apache" #服务的产品名
#define AP_SERVER_MAJORVERSION_NUMBER 2 #主要版本号
#define AP_SERVER_MINORVERSION_NUMBER 4 #小版本号
#define AP_SERVER_PATCHLEVEL_NUMBER 6 #补丁级别
- 编译安装
./configure --prefix=/usr/local/httpd24 --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-layout=Apache --enable-load-all-modules --enable-so --enable-rewrite --enable-ssl --enable-cgi --with-zlib --enable-proxy --enable-proxy-http --disable-version
make -j 4
make install
如果编译安装报错:
make[2]: *** [ab] 错误 1
make[2]: Leaving directory `/software/httpd-2.4.9/support'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/software/httpd-2.4.9/support'
make: *** [all-recursive] 错误 1
1.检查configure有没有添加--with-ssl=/usr/local/openssl-1.0.1g(重新编译安装后openssl的路径)的路径,添加后可解决以上报错的问题。
./configure --prefix=/home/apache-249 --enable-ssl --with-ssl=/usr/local/openssl-1.0.1g --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-rewrite --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event
如果不使用ssl,也可以在编译时候去掉--enable-ssl --with-ssl=/usr/local/openssl-1.0.1g,加上--disable-ssl 。
- 编译时的选项
- —enable-so: 支持动态加载模块
- —enable-rewrite: 启用URL重写
- —enable-ssl: 支持ssl加密
- -–enable-mpms-shared=[prefork | worker | event | all]: 指定编译哪些MPM模块, 可使用all表示全编译
- –with-mpm=[prefork | worker | event]: 如3种MPM模块都编译了,则通过此项指定默认使用哪种
- –enable-cgi: 启用cgi
- –enable-modules=[all | most | ……]: 指定启用哪些模块。可指定具体的模块名,也可使用all表示启用所有模块,most表示启用大多数常用模块。一般使用most即可
- –with-zlib: 依赖zlib库用于页面压缩
- –with-pcre: 指定pcre的路径,依赖pcre库用于解决正则表达式问题
- -–with-apr: 指定依赖的apr的路径
- –with-apr-util: 指定依赖的apr-util的路径
- —enable-proxy: 启用代理模块
- —disable-version:
配置httpd
配置环境变量
- 将
/usr/local/httpd24/bin
加入到系统PATH搜索路径中
cd /usr/local/httpd24/bin
echo 'PATH=$PATH:/usr/local/httpd24/bin' > /etc/profile.d/httpd.sh
. /etc/profile.d/httpd.sh
- 配置firewalld, 允许
http
服务被访问
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
- 启动httpd服务
apachectl start
curl 127.0.0.1
为httpd添加Unit file
- 创建httpd的Unit file, 使用systemd管理http服务
vim /usr/lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Service]
Type=notify
EnvironmentFile=/usr/local/httpd24/conf/httpd.conf
ExecStart=/usr/local/httpd24/bin/apachectl $OPTIONS -DFOREGROUND
ExecReload=/usr/local/httpd24/bin/apachectl $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 重新生成Unit之间的依赖关系
systemctl daemon-reload
apachectl stop
systemctl start httpd
curl 127.0.0.1
(转)CentOS 7.6 上编译安装httpd 2.4.38的更多相关文章
- CentOS 6.4源码编译安装httpd并启动测试
今天来总结一下在Linux中软件安装,通常我们应该知道,安装软件有两种方法:一种是软件包的安装,也就是rpm包的安装,就是指这些软件包都是 已经编译好的二进制rpm包,我们通过rpm安装工具和yum安 ...
- 不要着急改代码,先想想--centos 6.8下编译安装tmux
诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...
- CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.7.14+PHP7.0.11
准备篇 一.防火墙配置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...
- CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.6.33+PHP5.6.26
准备篇 一.防火墙配置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...
- 在CentOS 6.4中编译安装gcc 4.8.1
在CentOS 6.4中编译安装gcc 4.8.1 分类: C/C++ Linux/Unix2013-11-28 21:02 1877人阅读 评论(0) 收藏 举报 原文链接:http://www.c ...
- 编译安装HTTPD 2.4.9版本
编译安装HTTPD 2.4.9版本 服务脚本:/etc/rc.d/init.d/httpd 脚本配置文件路径:/etc/sysconfig/httpd 运行目录:/etc/httpd ...
- apache编译安装 httpd 2.2 httpd 2.4
#apache编译安装#httpd 2.2 , httpd 2.4 #!/bin/sh #apache编译安装 #httpd 2.2 , httpd 2.4 #centos #rpm -e httpd ...
- CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2
前传: 1.CentOS 7.3.1611系统安装配置图解教程 http://www.jb51.net/os/RedHat/597874.html 2.CentOS服务器初始化设置 http://ww ...
- Linux上编译安装PHP
这篇文章主要介绍了关于Linux上编译安装PHP,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 之前在服务器上编译安装了PHP运行环境,但是安装完过了一段时间就差不多忘记了,只是零零星 ...
随机推荐
- Maven nexus 安装nexus : wrapper | OpenSCManager failed - 拒绝访问。 (0x5)
在win7中安装nexus时提示:wrapper | OpenSCManager failed - 拒绝访问. (0x5) 主要是没有权限.需要以管理员的身份运行 如果你是直接点击 start-nex ...
- Spring Boot 默认支持的并发量
Spring Boot应用支持的最大并发量是多少? Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改.当在配置文件中敲出max后提示值就是它的默认值 ...
- springboot+mybatis +yml文件配置多数据源
记录一下java开发中多数据源的配置过程, 参考博客:https://blog.csdn.net/weinichendian/article/details/72903757,我在这里进行了整理,使用 ...
- Python入门篇-数据结构树(tree)篇
Python入门篇-数据结构树(tree)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.树概述 1>.树的概念 非线性结构,每个元素可以有多个前躯和后继 树是n(n& ...
- 从url中下载资源(目前测试只有照片,文件类的没有进行测试)
首先:是工具类: public class DownLoadUtils { /** * 从网络Url中下载文件 * * @param urlStr url路径 * @param fileName 文件 ...
- 《BUG创造队》第四次作业:基于原型的团队项目需求调研与分析
项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验八 团队作业4:基于原型的团队项目需求调研与分析 团队名称 BUG创造队 作业学习目标 (1)体验以原型设计为基础的团队 ...
- dimensionality reduction动机---data compression(使算法提速)
data compression可以使数据占用更少的空间,并且能使算法提速 什么是dimensionality reduction(维数约简) 例1:比如说我们有一些数据,它有很多很多的feat ...
- prefixfree.js和依托应用之Animatable
http://www.zhangxinxu.com/wordpress/2011/11/css3-prefixfree-js-animatable/ http://leaverou.github.io ...
- JPA EnableJpaAuditing 审计功能
关于自动填充或更新实体中的 CreateDate.CreatedBy 等在之前有一篇 jeecg 默认为空的字段值是如何被填充的? 有提到通过拦截器的方式实现,但是今天带大家了解一下如果使用 JPA ...
- A Class of Blind Source Extraction Method Using Second-Order Statistics
基于二阶统计量的盲源提取方法[1]. 文中提出了一系列基于二阶统计量的算法,包括离线BSE和在线BSE算法,可以提取平稳信号和非平稳信号.这些算法中,通过挖掘信号特征,提出了新的打分函数,以及一个无参 ...