二进制编译Httpd服务器

Posted zm121196

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制编译Httpd服务器相关的知识,希望对你有一定的参考价值。

前言:

  Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

环境介绍

  系统环境:CentOS7

  所需软件包:apr-1.5.1.tar.gz、apr-util-1.5.4.tar.gz、httpd-2.4.12.tar.gz

  注意:httpd2.4需要依赖apr和arp-util 1.4以上版本

CentOS编译安装Apache准备:确保开发包组已安装(Development tools、Server Platform Development) 

# yum groupinstall Development tools Server Platform Development

 

0、查询旧版apache的包名,卸载旧版的apache

rpm -q httpd
rpm -e httpd-2.2.15-31.el6.centos.x86_64 --nodeps

1、下载官方源码包并解压:  

wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.12.tar.gz
wget http://mirror.bit.edu.cn/apache/apr/apr-1.5.1.tar.gz
wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.5.4.tar.gz

2、解压

tar -xvf httpd-2.4.12.tar.gz
tar -xf apr-1.5.1.tar.gz 
tar -xf apr-util-1.5.4.tar.gz 

3、解决依赖关系:

mv apr-1.5.1 httpd-2.4.12/srclib/apr
mv apr-util-1.5.4 httpd-2.4.12/srclib/apr-util

2、切换至源码目录:

cd httpd-2.4.12

3、执行configue脚本:

./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd/ --enable-so
技术分享图片
 1 编译参数详解:
 2 
 3 --prefix:#安装路径
 4 
 5 --sysconfdir:#指定配置文件路径
 6 
 7 --enable-so:#DSO兼容,DSO=Dynamic Shared Object,动态共享对象,可实现模块动态生效
 8 
 9 --enable-ssl:#支持SSL/TLS,可实现https访问 需已安装openssl-devel
10 
11 --enable-cgi:#支持CGI脚本(默认对非线程的MPM模式开启)
12 
13 --enable-rewrite:#启用Rewrite功能,URL重写
14 
15 --enable-deflate:#支持压缩功能
16 
17 --with-zlib:#使用指定的zlib库,不指定路径会自动寻找
18 
19 --with-pcre:#使用指定的PCRE库,不指定路径会自动寻找 需已安装pcre-devel
20 
21 --with-apr:#指定apr安装路径
22 
23 --with-apr-util:#指定apr-util安装路径
24 
25 --enable-mpms-shared:#支持动态加载的MPM模块,可选参数:all
26 
27 --with-mpm:#设置默认启用的MPM模式,{prefork|worker|event}
28 
29 --enable-modules:#支持动态启用的模块,可选参数:all,most,few,reallyall
30 
31 #编译之前可使用./configure --help查看各项参数
技术分享图片

4、make and make install

make && make install

5、为了方便命令使用需要添加环境变量,编辑二进制程序如何让系统找到:

# cat /etc/profile.d/apache.sh
PATH=/usr/local/apache/bin:$PATH
export PATH

6、头文件输出给系统:

#ln -sv /usr/local/apache/include /usr/local/include/httpd

7、让系统重新生成库文件路径缓存

#ldconfig -v |grep "^[^[:space:]]"

8、启动apache服务:

# apachectl start

9、查看80端口是否被监听:

netstat -ntl

第一次遇到的情况是80端口未被监听,于是打开安装目录下:/usr/local/apache/logs/error_log出现如下提示:

技术分享图片

google了一下原因可能,资源受限,不能分配内存

解决方法:

 

# ulimit -u unlimited   #修改 用户最大进程数  
# echo ulimit -u unlimited >>/etc/profile   #保存修改到自启动文件  

再次查看80端口已被监听:

技术分享图片

浏览器访问测试:

 技术分享图片

以上是关于二进制编译Httpd服务器的主要内容,如果未能解决你的问题,请参考以下文章

二进制编译httpd

使用二进制编译安装HTTPD

用二进制编译安装httpd

Linux中centos中httpd源码安装过程详解

二进制编译httpd

二进制编译httpd的安装