httpd-2.4源码编译
APR
APR(Apache portable Run-time libraries,Apache可移植运行库) 主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。
随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR,开源项目比如用于服务器压力测试的Flood loader tester,该项目不仅仅适用于Apache
http://httpd.apache.org/test/flood
httpd-2.4源码编译
安装httpd-2.4
准备工作:
在官网下载apr和apr-util包以及httpd-2.4包:
httpd下载网址:http://httpd.apache.org/
apr相关网址:http://apr.apache.org/download.cgi

开始源码编译httpd-2.4
(1)将下载的包rz到linux中
(2)新建文件,将下载的apr、apr-util以及httpd包全部放在此文件,方便查找
[root@centos777~]#mkdir src
[root@centos777~]#mv apr* httpd-2.4.39.tar.bz2 src/
[root@centos777~]#cd src
[root@centos777src]#ls
apr-1.7.0.tar.bz2 apr-util-1.6.1.tar.bz2 httpd-2.4.39.tar.bz2
(3)开始安装开发环境包组及相关依赖的包:
[root@centos777src]#yum groupinstall "development tools" 安装开发包组
[root@centos777src]#yum install pcre-devel openssl-devel expat-devel 相关依赖的包
(4)解压三个下载下来的包,并将解压后的到复制到httpd指定的目录下
[root@centos777src]#tar xvf apr-util-1.6.1.tar.bz2
[root@centos777src]#tar xvf httpd-2.4.39.tar.bz2
[root@centos777src]#tar xvf apr-1.7.0.tar.bz2
[root@centos777src]#cp -r apr-1.7.0 httpd-2.4.39/srclib/apr 将apr包复制到指定的httpd/srclib目录下,起名叫apr
[root@centos777src]#cp -r apr-util-1.6.1 httpd-2.4.39/srclib/apr-util 将apr-util复制到httpd/srclib目录下,起名叫apr-util
(5)切换到httpd目录下,开始./configure编译
[root@centos777httpd-2.4.39]#cd httpd-2.4.39/ 切换到httpd目录下,然后开始编译
以下是编译命令,指定相关文件、配置、程序等内容:
./configure \
--prefix=/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
(6)make && make install 编译
[root@centos777httpd-2.4.39]#make && make install
(7)定义环境变量并生效
[root@centos777httpd-2.4.39]#echo 'PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd24.sh
[root@centos777httpd-2.4.39]#. /etc/profile.d/httpd24.sh
(8)启动和关闭apache服务
[root@centos777~]#apachectl start
[root@centos777~]#apachectl stop
查看网页,以显示结果,源码编译完成!

创建虚拟主机
A主机:IP地址为192.168.34.102
B主机:IP地址为192.168.34.100
在A主机上配置
(1)创建文件及临时网址
[root@centos777~]#mkdir /data/{a,b}site -pv
mkdir: created directory ‘/data/asite’
mkdir: created directory ‘/data/bsite’
[root@centos777~]#echo www.a.com > /data/asite/index.html
[root@centos777~]#echo www.b.net > /data/bsite/index.html
(2)修改配置文件
[root@centos777~]#cd /app/httpd24
[root@centos777httpd24]#ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@centos777httpd24]#cd conf
[root@centos777conf]#vim httpd.conf 在此配置文件中可以修改,启用虚拟机功能

(3)切换到extra目录下,并修改httpd-vhosts.coonf配置文件
[root@centos777conf]#cd extra/
[root@centos777extra]#ls
httpd-autoindex.conf httpd-default.conf httpd-languages.conf httpd-mpm.conf httpd-ssl.conf httpd-vhosts.conf
httpd-dav.conf httpd-info.conf httpd-manual.conf httpd-multilang-errordoc.conf httpd-userdir.conf proxy-html.conf
[root@centos777extra]#vim httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/asite/"
ServerName "www.a.com"
ErrorLog "logs/a.com-error_log"
CustomLog "logs/a.com-access_log" common
<directory /data/asite>
require all granted
</directory>
</VirtualHost> <VirtualHost *:80>
DocumentRoot "/data/bsite/"
ServerName "www.b.net"
ErrorLog "logs/b.net-error_log"
CustomLog "logs/b.net-access_log" common
<directory /data/bsite>
require all granted
</directory>
</VirtualHost>

在B主机上配置并验证
修改hosts配置文件,作为解析A主机的IP网址
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 centos7.localdomain
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.34.102 www.a.com www.b.net

验证效果:
[root@centos7~]#curl www.a.com
www.a.com
[root@centos7~]#curl www.b.net
www.b.net
实现开机启动apache服务:
(1)修改/etc/rc.local配置文件,在最底部写上apache的路径
vim /etc/rc.local
/app/httpd24/bin/apachectl

(2)加上执行权限并重启
[root@centos777asite]#chmod +x /etc/rc.local
[root@centos777asite]#reboot
(3)验证效果,在B主机上继续查看网址,由于apache开机自启,就可以直接访问了

如果想自定义启动脚本,可以将已经装好的centos6的httpd配置文件复制到另一个centos6,稍加修改即可
centos6配置文件复制到另一个centos6目录下:
[root@centos6~]#scp /etc/rc.d/init.d/httpd 192.168.34.102:/etc/rc.d/init.d/httpd24
httpd 100% 3488 3.4KB/s 00:00
修改httpd24配置文件
vim /etc/rc.d/init.d/httpd24
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

启动httpd服务,查看80端口已经打开。


httpd-2.4源码编译的更多相关文章
- bash-2 httpd服务的源码编译安装脚本
httpd服务的源码编译安装脚本 #!/bin/bash # #******************************************************************** ...
- Linux源码编译安装httpd
Linux安装软件采用源码编译安装灵活自由,适用于不同平台,维护也十分方便. 源码编译的安装方式一般由3个步骤组成: 1.配置(configure) 2.编译(make) 3.安装(make inst ...
- Httpd服务进阶知识-LAMP源码编译安装
Httpd服务进阶知识-LAMP源码编译安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道,动态资源交给fastcgi程序处理,静态资源依旧由httpd服务器处理 ...
- 源码编译安装LAMP环境及配置基于域名访问的多虚拟主机
实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) apache版本: apache2.2.27 mysql版本: Mysql-5.6.23 php版本 ...
- 总结源码编译安装mysql
最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...
- CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境
CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...
- 日常工作之Zabbix源码编译,兼容mysql5.6
原文链接:http://www.leleblog.top/daily/more?id=6 Zabbix源码编译 环境: centOS7.mysql5.6.21(已存在). 任务简述: 服务器搭建zab ...
- 源码编译配置lnmp部署zabbix
环境说明: [root@wcy ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@wcy ~]# uname -a Linux ...
- CentOS6.5下搭建LAMP环境(源码编译方式)
CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL) 学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP ,WAMP,MAMP等.这里我介 ...
- Linux学习日记——源码编译Apache
[本文为笔者在学习Linux 下的软件安装时,尝试使用源码安装Apache 的过程,事后进行一个小小的总结,发现错误望指正.] 一.典型的源码编译安装软件的过程包括以下3步: 1) 运行 config ...
随机推荐
- HTML滚动时位置固定
现在显示器一般都是宽屏,网页两端常常会留白. 两边可能会放一些推荐.标签或是导航什么的辅助模块. 现在有的网站页面内容过长时,用户将滚动条向下拉时,拉到一定程度,左右两侧的辅助模块就会固定在指定位置, ...
- Ubuntu下配置LVS【h】
以后服务器只用CentOS和Ubuntu.下午用redhat装个lvs装了一下午都没搞好,TNND的.果断用Ubuntu,不到两个小时就搞定了. 原文参见: http://kamengwang.blo ...
- Hanoi II——汉诺塔步数求解进阶问题
在NOJ上遇到关于汉诺塔步数的求解问题 开始读时一脸懵逼,甚至不知道输入的数据是什么意思 题目描述:给出汉诺塔的两个状态,从初始状态移动到目的状态所需要的最少步数 对于初级汉诺塔步数问题,我们可以直接 ...
- 生成 n 个不同的随机数且随机数区间为 [0,n)
生成 n 个不同的随机数且随机数区间为 [0,n) Java 实现 import java.util.ArrayList; import java.util.List; import java.uti ...
- hadoop--Unable to load native-hadoop library for your platform解决方法
笔者实验环境:centos 7.4.1708,hadoop-2.6.0-cdh5.14.2. 执行hadoop命令时出现以下告警,不能加载相关库: WARN util.NativeCodeLoader ...
- Html大段文本自适应换行显示-SSM
只处理前端: <style> .ctl{ table-layout:fixed } .ctl td{ word-break:break-all } </style> <d ...
- Windows10下安装numpy
1.https://bootstrap.pypa.io/get-pip.py 下载get-pip.py(右键另存为即可) 2.命令行下在get-pip.py所在文件夹下运行get-pip.py 3.命 ...
- 汉字在unicode中的位置
在www.unicode.org中查找汉字.china找不到,后来查资料才明白,应该查CJK,为什么内? unicode这个组织吧中国日本韩国的字合并了 中日韩统一表意文字(CJK Unified ...
- 1264: 祈雨(Java)
WUSTOJ 1264: 祈雨 Description 在持续了X天的干旱之后,ACM俱乐部决定由LCM去请求雨大师XH祈雨,CMS则准备工具收集雨水,由于ACM俱乐部中有一个逆天的存在,BobLee ...
- 大话OSI七层协议
大白话OSI七层协议 互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层.实际上这个七层是不存在的.没有这七层的概念,只是人为的划分而已.区 ...