Apache HTTP Server(简称Apache),是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其具有的跨平台性和安全性,被广泛使用,是最流行的Web服务器端软件之一。
Apache、Nginx和Lighttpd,是当前主流的三大Web服务器。
本文主要介绍在Linux环境下用源码安装Apache服务器的步骤。
演示环境:CentOS6.5 + httpd-2.4.39
1. 安装前准备环境
1.1 安装编译Apache所需的相关软件包。
[root@ecs-6cf5 src]# yum -y install gcc gcc++ zlib zlib-devel
1.2 卸载系统自带的Apache服务(如果操作系统是最小化安装,则忽略此步骤)。
[root@ecs-6cf5 src]#rpm -qa | grep httpd
[root@ecs-6cf5 src]#rpm -e --nodeps httpd-2.2.15-29.el6.centos.x86_64
[root@ecs-6cf5 src]#rpm -e --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64
2. 下载解压源码包
2.1 源码包下载
在Apache官网http://www.apache.org找到httpd-2.4.39,点击httpd-2.4.29.tar.gz,浏览器会自动开始下载,右键选择复制链接地址,获取该文件的URL,然后在CentOS主机上用wget命令下载源码包。
[root@ecs-6cf5 ~]# cd /usr/local/src/
[root@ecs-6cf5 src]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.39.tar.gz
2.2 解压
[root@ecs-6cf5 src]# tar -zxvf httpd-2.4.39.tar.gz
3. 安装Apache
3.1 配置源码
[root@ecs-6cf5 src]# cd /usr/local/src/httpd-2.4.39
[root@ecs-6cf5 httpd-2.4.39]# ./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate
配置过程中的错误处理:
(1)APR not found错误
如果在配置这一步遇到报APR not found的错误,则按如下步骤安装APR后重新配置。
[root@ecs-6cf5 httpd-2.4.39]# cd /usr/local/src
[root@ecs-6cf5 src]# wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz
[root@ecs-6cf5 src]# tar -zxvf apr-1.6.5.tar.gz
[root@ecs-6cf5 src]# cd apr-1.6.5
[root@ecs-6cf5 apr-1.6.5]#./configure --prefix=/usr/local/apr
[root@ecs-6cf5 apr-1.6.5]# make && make install
完成APR的安装后,指定安装的APR路径,再次执行配置httpd的命令:
[root@ecs-6cf5 apr-1.6.5]# cd /usr/local/src/httpd-2.4.39
[root@ecs-6cf5 httpd-2.4.39]# ./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate --with-apr=/usr/local/apr
(2)APR-util not found错误
如果遇到报APR-util not found的错误,则按如下步骤安装APR-util
[root@ecs-6cf5 httpd-2.4.39]# cd /usr/local/src
[root@ecs-6cf5 src]# wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@ecs-6cf5 src]# tar -zxvf apr-util-1.6.1.tar.gz
[root@ecs-6cf5 src]# cd apr-util-1.6.1
[root@ecs-6cf5 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config --enable-utf8
[root@ecs-6cf5 apr-util-1.6.1]# make && make install
如果在编译中报xml/apr_xml.c:35:19:error: expat.h: No such file or directory的错误,则按照以下步骤安装expat-devel包,然后再次配置、编译、安装apr-util。
[root@ecs-6cf5 apr-util-1.6.1]# yum install -y expat-devel
[root@ecs-6cf5 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config --enable-utf8
[root@ecs-6cf5 apr-util-1.6.1]# make && make install
完成APR-util的安装后,指定安装的APR和APR-util路径,再次执行配置httpd的命令
[root@ecs-6cf5 apr-util-1.6.1]# cd /usr/local/src/httpd-2.4.39
[root@ecs-6cf5 httpd-2.4.39]# ./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
(3)pcre错误
如果遇到报pcre的错误,则按如下步骤安装pcre:
[root@ecs-6cf5 httpd-2.4.39]# cd /usr/local/src
[root@ecs-6cf5 src] wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz
[root@ecs-6cf5 src] tar -zxvf pcre-8.00.tar.gz
[root@ecs-6cf5 src] cd pcre-8.00
[root@ecs-6cf5 pcre-8.00] ./configure --prefix=/usr/local/pcre
[root@ecs-6cf5 pcre-8.00] make && make install
重新配置Apache 完成pcre安装后,指定安装的APR、APR-util和pcre路径,再次执行配置httpd的命令,到这里一般都会配置成功。
[root@ecs-6cf5 pcre-8.00] cd /usr/local/src/httpd-2.4.39
[root@ecs-6cf5 httpd-2.4.39]# ./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
3.2 编译并安装Apache
[root@ecs-6cf5 httpd-2.4.39] make && make install
4. 启动Apache服务
复制启动脚本到/etc/init.d/下
[root@ecs-6cf5 httpd-2.4.39]# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
[root@ecs-6cf5 httpd-2.4.39]# /etc/init.d/httpd start
如果在启动时报AH00558错误,修改/usr/local/apache2/conf/httpd.conf文件,把ServerName配置成ServerName localhost:80,然后再次启动成功
查看80端口是否正常监听,查询到80端口正常监听表明Apache服务器运行正常。
[root@ecs-6cf5 httpd-2.4.39]# netstat -antp |grep :80
至此,Apache服务器安装完成。