前言:
Apache HTTP (简称)是的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的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 httpdrpm -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.gzwget http://mirror.bit.edu.cn/apache/apr/apr-1.5.1.tar.gzwget 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/aprmv 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-devel10 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-devel20 21 --with-apr:#指定apr安装路径22 23 --with-apr-util:#指定apr-util安装路径24 25 --enable-mpms-shared:#支持动态加载的MPM模块,可选参数:all26 27 --with-mpm:#设置默认启用的MPM模式,{prefork|worker|event}28 29 --enable-modules:#支持动态启用的模块,可选参数:all,most,few,reallyall30 31 #编译之前可使用./configure --help查看各项参数
4、make and make install
make && make install
5、为了方便命令使用需要添加环境变量,编辑二进制程序如何让系统找到:
# cat /etc/profile.d/apache.shPATH=/usr/local/apache/bin:$PATHexport 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端口已被监听:
浏览器访问测试: