Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中【摘自百度百科】。
一、安装环境
操作系统:CentOS Linux release 7.4.1708 (最小化安装版)
二、安装过程
Apache HTTP服务的安装过程很简单,特别是yum安装过程,基本无需人工干预,一条命令完成安装:yum -y install httpd,所有依赖包都搞定,十分方便。要指定安装目录的话加参数–installroot=/path,要指定安装版本的话首先yum list|grep httpd,选择自己所需要的版本安装即可。为了增强Apache HTTP服务器的可定制化,下面我们重点介绍一下编译安装Apache HTTP服务器,也就是httpd。
(一)安装gcc及gcc++。
[root@Geeklp-Httpd ~]# yum -y install gcc-c++
(二)下载、安装apr-1.6.3、apr-util-1.6.1、pcre-8.41、httpd-2.4.29、unzip、libtool、bzip2、expat-devel。
[root@Geeklp-Httpd ~]# curl -C - -O http://mirrors.shuosc.org/apache//apr/apr-1.6.3.tar.bz2
[root@Geeklp-Httpd ~]# curl -C - -O http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.bz2
[root@Geeklp-Httpd ~]# curl -C - -O https://ftp.pcre.org/pub/pcre/pcre-8.41.zip
[root@Geeklp-Httpd ~]# curl -C - -O http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.29.tar.gz
[root@Geeklp-Httpd ~]# yum -y install unzip
[root@Geeklp-Httpd ~]# yum -y install bzip2
[root@Geeklp-Httpd ~]# yum -y install libtool
[root@Geeklp-Httpd ~]# yum -y install expat-devel
(三)解压所有源码包。
[root@Geeklp-Httpd ~]# tar -xvjf apr-1.6.3.tar.bz2
[root@Geeklp-Httpd ~]# tar -xvjf apr-util-1.6.1.tar.bz2
[root@Geeklp-Httpd ~]# unzip pcre-8.41.zip
[root@Geeklp-Httpd ~]# tar -xvzf httpd-2.4.29.tar.gz
(四)依次编译安装以上源码包。
1、新建安装目录。
[root@Geeklp-Httpd ~]# mkdir -p /usr/local/Apps/apr-1.6.3
[root@Geeklp-Httpd ~]# mkdir -p /usr/local/Apps/apr-util-1.6.1
[root@Geeklp-Httpd ~]# mkdir -p /usr/local/Apps/pcre-8.41
[root@Geeklp-Httpd ~]# mkdir -p /usr/local/Apps/httpd-2.4.29
2、安装apr-1.6.3。
[root@Geeklp-Httpd ~]# cd apr-1.6.3
[root@Geeklp-Httpd apr-1.6.3]# ./buildconf
buildconf: checking installation...
buildconf: python version 2.7.5 (ok)
buildconf: autoconf version 2.69 (ok)
buildconf: libtool version 2.4.2 (ok)
buildconf: copying libtool helper files using /usr/bin/libtoolize
buildconf: creating include/arch/unix/apr_private.h.in ...
buildconf: creating configure ...
buildconf: generating 'make' outputs ...
buildconf: rebuilding rpm spec file
[root@Geeklp-Httpd apr-1.6.3]# ./configure --prefix=/usr/local/Apps/apr-1.6.3/
[root@Geeklp-Httpd apr-1.6.3]# make && make test && make install
在安装过程中会看到输出信息,输出信息全部为SUCCESS说明安装过程正确无误,否则需要再次检查。排除问题继续安装。
3、安装apr-util-1.6.1。
[root@Geeklp-Httpd apr-1.6.3]# cd ../apr-util-1.6.1
[root@Geeklp-Httpd apr-util-1.6.1]# ./configure --prefix=/usr/local/Apps/apr-util-1.6.1/ --with-apr=/usr/local/Apps/apr-1.6.3/bin/apr-1-config
[root@Geeklp-Httpd apr-util-1.6.1]# make test
[root@Geeklp-Httpd apr-util-1.6.1]# make install
此过程中也不能出现任何报错,在make test是需全部通过,结果均为SUCCESS。
4、安装PCRE。
[root@Geeklp-Httpd apr-util-1.6.1]# cd ../pcre-8.41
[root@Geeklp-Httpd pcre-8.41]#
[root@Geeklp-Httpd pcre-8.41]# ./configure --prefix=/usr/local/Apps/pcre-8.41/
[root@Geeklp-Httpd pcre-8.41]# make
[root@Geeklp-Httpd pcre-8.41]# make install
5、安装httpd。
[root@Geeklp-Httpd pcre-8.41]# cd ../httpd-2.4.29
[root@Geeklp-Httpd httpd-2.4.29]# ./configure --prefix=/usr/local/Apps/httpd-2.4.29/ --with-apr=/usr/local/Apps/apr-1.6.3/bin/ --with-apr-util=/usr/local/Apps/apr-util-1.6.1/ --with-pcre=/usr/local/Apps/pcre-8.41/
[root@Geeklp-Httpd httpd-2.4.29]# make
[root@Geeklp-Httpd httpd-2.4.29]# make install
[root@Geeklp-Httpd httpd-2.4.29]# rm -rf ../*
在执行这一步时,我们需要选择哪些安装选项可以根据自己的实际需求来决定,具体可以执行./configure –help看一下有哪些可选安装项。这也是编译安装的优势所在。
6、配置防火墙。
[root@Geeklp-Httpd ~]# firewall-cmd --permanent --add-service=http
[root@Geeklp-Httpd ~]# firewall-cmd --reload
7、启动服务。
[root@Geeklp-Httpd bin]# /usr/local/Apps/httpd-2.4.29/bin/apachectl -k start
执行命令时,出现以下错误提示:
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using fe80::20c:29ff:fed2:c5b3. Set the ‘ServerName’ directive globally to suppress this message
编辑配置文件:/usr/local/Apps/httpd-2.4.29/conf/httpd.conf
加入:ServerName 127.0.0.1:80
重启之后,无报错。
8、测试。
在浏览器中输入,服务器地址:10.1.1.21,出现:It works!安装配置成功!
三、附加内容
1、/usr/local/Apps/httpd-2.4.29/bin下的apachectl与httpd功能一样,具体可以通过/usr/local/Apps/httpd-2.4.29/bin/httpd -h查看。
2、Apache HTTP服务器的详细配置会在后续的文章中结合实际应用来阐述。