Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解

Apache简介:

    “Apache HTTP Server”是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在web服务器领域中长期

保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX、Windows等多种操作系统平台。

Apache的起源:

Apache服务器是针对之前出现的若干个web服务器程序进行整合、完善后形成的软件、其名称来源于“A Patchy Server”,意思是基于原有web服务程序的代码进行修改(补丁)后形成的服务器程序。

 1995年,Apache服务程序的1.0版本发布,之后一直由Apache Group负责该项目的管理和维护;直到1999年,在Apache Group 的基础上成立了Apache软件基金会(Apache Software Foundation,ASF)。目前,Apache项目一直由ASF负责管理和维护。

ASF是非盈利性质的组织,最初只负责“Apache Web”服务器项目的管理,随着web应用需求的不断扩大,ASF逐渐增加了许多与Web技术相关的开源软件项目,因此Apache现在不仅仅代表着web服务器,更广泛地代表着ASF管理的众多开源软件项目。ASF基金会的官方网站是http://www.apache.org/。

Apache HTTP Server 是ASF旗下著名的软件项目之一,其正式名称是httpd,也就是历史上的Apache网站服务器。

Apache的主要特点:

Apache服务器在功能、性能和安全性等方面的表现都是比较突出的,可以较好地满足Web服务器用户的应用需求。

其主要特点包括以下几个方面:

(1.)开放源代码:

这是Apache服务器的重要特性之一,也是其他特性的基础。Apache服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使用,这充分体现了开源软件的精神。

(2.)跨平台应用:

这个特性得益于Apache的源代码开放。Apache服务器可以运行在绝大多数软件硬件平台上,所有Unix操作系统都可以运行Apache服务器,甚至Apache服务器可以良好地运行在大多数Windows系统平台中。Apache服务器的跨平台特性使其具有被广泛应用的条件。

(3.)支持各种Web编程语言:

Apache服务器可支持的网页编程语言包括Perl、PHP、Python、Java等,甚至微软的ASP技术也可以在Apache服务器中使用。支持各种常用的web编程语言使Apache具有更广泛的应用领域。

(4.)模块化设计:

Apache并没有将所有的功能集中在单一的服务程序内部,而是尽可能地通过标准的模块实现专有的功能,这为Apache服务器带来了良好的扩展性。其他软件开发商可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能。

(5.)运行非常稳定:

Apache服务器可用于构建具有大负载访问量的web站点,很多知名的企业网站都使用Apache作为web服务软件。

(6.)良好的安全性:

Apache服务器具有相对较好的安全性,这是开源软件共同具有的特性。并且,Apache的维护团队会及时对已发现的漏洞提供修补程序,为Apache的所有使用者提供尽可能安全的服务器程序。


接下来正式安装配置Apache


一、安装httpd2.2.17服务器


在配置Apache网站服务之前,需要正确安装好httpd服务器软件,httpd服务器的安装可以选用RPM安装、源码编译安装这两种方式,前者相对比较简单、快速,但是在功能上存在一定的局限性。在实际的生产环境中,使用源码编译安装的方式要更加普遍


1.准备工作


为了避免发生端口冲突、程序冲突等现象、建议卸载使用rpm安装方式安装的httpd。


[root@kang ~]# rpm  -e httpd --nodeps
2.源码编译配置安装


可以到官网去下载httpd应用程序:

Apache下载地址:http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.17.tar.gz

(1.)解包

将下载获得的httpd源码包解压并释放到/usr/src目录下,并且切换到展开后的源码目录中。

[root@kang ~]# tar zxf httpd-2.2.17.tar.gz 
[root@kang ~]# cd httpd-2.2.17/
[root@kang httpd-2.2.17]# 
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第1张图片

(2.)配置

根据服务器的实际应用需要,可以灵活设置不同的定制选项,如指定安装路径、启用字符集支持等。若要获知可用的各种配置选项及其含义,可以执行“./configure --help”命令。

[root@kang httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi  
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第2张图片

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第3张图片

上述配置命令中,各选项的含义如下:

--prefix:指定将httpd服务程序安装到哪个目录下,如/usr/local/httpd

--enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。

--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。

--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页。

--enable-cgi:启用cgi脚本程序支持,便于扩展网站的应用访问能力。


(3.)编译及安装


完成配置以后,执行make命令进行编译,将源代码转换为可执行的程序;然后执行make install命令完成最后的安装过程;将编译完的httpd程序及相关目录,文件复制到预设的安装目录(由配置时的 --prefix选项指定)。其中make的过程可能需要较长的时间。


[root@kang httpd-2.2.17]# make && make install 
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第4张图片 Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第5张图片

3.确认安装结果

由于指定的安装目录为/usr/local/httpd,因此httpd服务的各种程序、模块、帮助文件等都将复制到此目录下。



在安装后的/usr/local/httpd目录下,主要子目录的用途如下:

/usr/local/httpd/bin:存放httpd服务的各种执行程序文件,包括主程序httpd、服务控制工具Apachectl等。

/usr/local/httpd/conf:存放httpd服务的各种配置文件,包括主配置文件httpd.conf、增强配置子目录extra等。

/usr/local/httpd/htdocs:存放网页文档、包括默认首页文件index.html等。

/usr/local/httpd/logs:存放httpd服务的日志文件。

/usr/local/httpd/modules:存放httpd服务的各种模块文件。

/usr/local/htttpd/cgi-bin:存放各种cgi程序文件。


4.优化执行路径

通过源码编译安装的httpd服务,程序路径并不在默认的搜索路径中,为了使用该服务在使用时更加方便,可以为相关程序添加符号链接。

[root@kang ~]# ln  -s  /usr/local/httpd/bin/* /usr/local/bin
[root@kang ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl 

这样,再执行相关命令时就不用输入冗长的路径了。例如,当执行httpd -v命令(用于查看程序版本)时,即相当于执行“/usr/local/httpd/bin/httpd -v”命令。


5.添加httpd系统服务


若希望将httpd添加为系统服务,以便通过chkconfig进行管理,需要建立可控制的服务脚本。

例如,可将Apachectl脚本复制为/etc/inti.d/httpd,并在文件开头添加chkconfig识别配置,然后再将其添加为标准的Linux系统服务。

[root@kang ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@kang ~]# vim /etc/init.d/httpd 
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第6张图片

[root@kang ~]# chkconfig --add httpd
[root@kang ~]# chkconfig --list httpd
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第7张图片

成功执行上述操作以后,Linux系统每次进入运行级别3、5时,httpd服务将会自动运行。在日常维护过程中,可以直接使用Apachectl

工具来控制httpd服务,也可以使用/etc/init.d/httpd脚本。

例如:当执行“/etc/init.d/httpd start”命令时,等同于执行“/usr/local/httpd/bin/apachectl start” 命令,它们都用来启动httpd服务器程序。


二、httpd服务器的基本配置



熟悉了httpd服务器的安装过程及主要目录结构以后,接下来介绍使用httpd服务来架设web站点的基本过程及常见配置。


web站点的部署过程


1.确定网站名称、IP地址


若要向Internet中发布一个web站点,需要申请一个合法的互联网IP地址,并向DNS服务提供商注册一个完整的网站名称。在企业内部网络中,这些信息可以自行设置。例如,web主机的IP地址为192.168.197.177,网站名称为www.benet.com。

当然,若要在客户机的浏览器中通过地址www.benet.com来访问此web站点,还应该有可用的DNS域名服务。

例如:客户机所使用的DNS服务器应能够将www.benet.com解析为IP地址192.168.197.177.

在web服务器本机中,将IP地址设置为192.168.197.177,将主机名称设置为www.benet.com;

并修改/etc/hosts文件,添加相应的映射记录以提高本地解析速度。


2.配置并启动httpd服务

   

(1、)配置httpd服务

编辑httpd服务的主配置文件httpd.conf,查找配置项“ServerName”,在附近添加一行内容“ServerName  www.benet.com”,用于设置网站名称。

[root@kang ~]# vim  /usr/local/httpd/conf/httpd.conf 
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第8张图片

修改httpd.conf文件的配置内容以后,建议使用带-t选项的Apachectl命令对配置内容进行语法检查(或使用httpd -t命令)。如果没有语法错误,将会显示“Syntax OK”的信息,否则需要根据错误提示信息来修正配置。

[root@kang conf]# /usr/local/httpd/bin/apachectl -t
Syntax OK

(2.)启动httpd服务

使用脚本文件/usr/local/httpd/bin/apachectl或者/etc/init.d/httpd,分别通过start、stop、restart选项进行控制,可用来启动、终止、重启httpd服务。正常启动httpd服务以后,默认将监听tcp协议的80端口。

[root@kang ~]# /etc/init.d/httpd start

3.部署网页文档


对于新编译安装的httpd服务,网站根目录位于/usr/local/httpd/htdocs下,需要将web站点的网页文档复制或上传到此目录下。httpd服务器默认已提供一个名为index.html的测试网页(可显示“it works!”),作为访问网站时的默认首页。


4.在客户机中访问web站点


在客户机的网页浏览器中,通过域名或IP地址访问httpd服务器,将可以看到web站点的页面内容。若使用的是httpd服务默认的首页,则页面会显示it works!

如下图所示,表示httpd服务已经正常运作。

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第9张图片

注意:要关闭防火墙或放行80端口!!!


5.查看web站点访问的情况

httpd服务器使用了两类型的日志:访问日志和错误日志、这两种日志的文件名分别为access_log和error_log,均位于/usr/local/httpd/logs目录下。

通过查看访问日志文件access_log,可以及时了解web站点的访问情况。访问日志中的每一行对应一条访问记录,记录了客户机的ip地址访问服务器的日期和时间请求的网页对象等信息。

例如:当从客户机192.168.197.1访问web站点以后,访问日志将会记录192.168.197.1......“GET/HTTP/1.1”.........的信息。


[root@kang ~]# tail /usr/local/httpd/logs/access_log
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第10张图片

通过查看错误日志文件error_log,可以为排查服务器运行故障提供参考依据。错误日志文件中的每一行对应一条错误记录,记录了发生错误的日期和时间、错误事件类型、错误事件的内容描述信息等。

例如:当浏览器请求的网站图片文件favicon.ico不存在时,将会记录.......File does not exist........favicon.ico的消息

[root@kang ~]# tail /usr/local/httpd/logs/error_log 

上述过程是使用httpd服务器部署并验证web站点的基本步骤,其中涉及httpd.conf配置文件的改动量非常少,要搭建一台简单的web服务器还是十分容易的。


httpd.conf配置文件


若要对web站点进行更加具体、更加强大的配置。仅仅学会添加ServerName配置项显然是远远不够的,还需要进一步熟悉httpd.conf配置文件,了解其他各种常见的配置项。

主配置文件httpd.conf由注释行、设置行两部分组成。

与大多数Linux配置文件一样,注释性的文字以#开始,包含了对相关配置内容进行的说明和解释。除了注释行和空行以外的内容即设置行,构成了web服务的有效配置。根据配置所作用的范围不同,设置行又分为全局配置、区域配置。


1.全局配置项

全局配置决定httpd服务器的全局运行参数,使用关键字值的配置格式。例如,配置网站名称时使用的ServerName www.benet.com,其中ServerName为配置关键字,而www.benet.com为对应的值。

每一条全局配置都是一项独立的配置,不需要包含在其他任务区域中。以下列出了httpd.conf文件中最常用的一些全局配置项。

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第11张图片

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第12张图片

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第13张图片

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第14张图片Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第15张图片

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第16张图片

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第17张图片

在上述配置行中,各全局配置项的含义如下:

ServerRoot:设置httpd服务器的根目录,该目录下包括了运行web站点必需的子目录和文件。默认的根目录为/usr/local/httpd,与httpd安装目录相同。在httpd.conf配置文件中,如果指定目录或文件位置时不使用绝对路径,则该目录或文件位置都认为是在服务器的根目录下。

Listen:设置httpd服务器监听的网络端口号,默认为80。

User:设置运行httpd进程时的用户身份,默认为daemon。

Group:设置运行httpd进程时的组身份,默认为daemon。

ServerAdmin:设置httpd服务器的管理员E-mail地址,可以通过此E-mail地址及时联系web站点的管理员。

ServerName:设置web 站点的完整主机名(主机名+域名)。

DocumentRoot:设置网站根目录,即网页文档在系统中的实际存放路径。此配置项比较容易和ServerRoot混淆,需要格外注意。

DirectoryIndex:设置网站的默认索引页(首页),可以设置多个首页,以空格分开,默认的首页文件为index.html。

ErrorLog:设置错误日志文件的路径,默认路径为logs/error_log.

LogLevel:设置记录日志的级别,默认级别为warn(警告)。

CustomLog:设置访问日志文件的路径、日志类型、默认路径为logs/access_log,使用的类型为common(通用格式)。

PidFile:设置用于保存httpd进程号(PID)文件,默认保存地址为logs/httpd.pid,logs目录位于Apache的服务器根目录。

CharsetDefault:设置站点中的网页默认使用的字符集编码,如UTF-8、gb2312等。

Include:包含另一个配置文件的内容,可以实现将一些特殊功能的配置放到一个单独的文件中,再使用include配置项将其包含到httpd.conf文件中,这样便于独立进行配置功能的维护而不影响主配置文件。


以上配置项都是httpd.conf文件中主要的全局配置项。还有其他很多配置项,在此不一一列举,如果需要使用可以查看Apache服务器中的相关帮助手册文档。


2.区域配置项


除了全局配置项以外,httpd.conf文件中的大多数配置是包括在区域中的。区域配置使用一对组合标记,限定了配置项的作用范围。

例如,最常见的目录区域配置的形式如下所示:


在以上区域定义中,设置了一个根目录的区域配置,其中添加的访问控制相关配置只对根目录有效,而不会作用于全局或其他目录区域。


三、部署AWStats日志分析系统根据网站访问情况进行统计


在httpd服务器的访问日志文件access_log中,记录了大量的客户机访问信息,通过分析这些信息,可以及时了解web站点的访问情况,如每天或特定时间段的访问ip数量,点击最大的页面等。

那么接下来将介绍安装AWStats日志分析系统,以完成自动化的日志分析与统计工作。


部署AWStats分析系统


AWStats是使用Perl语言开发的一款开源日志分析系统,它不仅可用来分析Apache网站服务器的访问日志,也可以用来分析Samba、Vsftpd、IIS等服务的日志信息。结合crond等计划任务服务,可以对不断的增长日志内容定期进行分析。


AWStats的软件包可以从官方网站进行下载:

AWStats最新下载地址:https://jaist.dl.sourceforge.net/project/awstats/AWStats/7.7/awstats-7.7.zip

下面以awstats-7.3.tar.gz软件包为例,介绍web站点www.benet.com添加AWStats日志分析系统的过程。


1.安装AWStats软件包


AWStats软件包的安装非常简单,只需要将软件包解压到httpd服务器中的/usr/local/目录下即可。


[root@kang ~]# tar zxf awstats-7.3.tar.gz 
[root@kang ~]# mv awstats-7.3 /usr/local/awstats

2.为要统计的站点建立配置文件


AWStats系统支持多个网站的日志文件,通常以网站名称来区分不同的站点。因此,在执行日志文件分析之前,需要为每个web站点建立站点统计配置文件,借助于AWStats系统提供的awstats_configure.pl脚本可以简化创建过程。


(1.)首先切换到awstas/tools目录下,并执行其中的awstats_configure.pl脚本。


[root@kang ~]# cd /usr/local/awstats/tools/
[root@kang tools]# chmod +x awstats_configure.pl 
[root@kang tools]# ./awstats_configure.pl 

之后将会进入一个交互式的配置过程,将会检查awstats的安装目录、httpd服务的配置文件路径、日志记录格式等系统环境,并提示用户指定站点名称、设置配置文件路径。


(2.)指定httpd主配置文件的路径

配置脚本将查找并识别httpd服务的主配置文件,以便自动添加相关配置内容。如果未能在常见的安装路径中找到相关配置内容,则用户需要根据提示进行手工指定。

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第18张图片

(3.)设置日志类型


将httpd服务器的日志记录格式改为combined,服务器可以在日志文件中记录更加详细的web访问信息。因此,当提示是否修改日志类型时,建议选择“y”。然后配置脚本,将会自动修改httpd.conf配置文件,以添加访问AWStats系统的相关配置内容。

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第19张图片

(4.)为指定web站点创建配置文件


根据提示继续选择“y”以创建站点配置文件,并指定要统计的目标网站名称、站点配置文件的存放位置(默认为/etc/awstats)

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第20张图片

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第21张图片

(5.)后续配置工作


接下来将会自动重启httpd服务(需要有/etc/init.d/httpd脚本支持),然后设置cron计划任务(7.0版本尚不支持),按两次Enter键退出配置工具。

根据上述配置过程,为网站www.benet.com新建立的站点统计配置文件将存放到/etc/awstats目录下,文件名称为awstats.www.benet.com.conf。若还需要统计其他web站点的日志,可以执行awstats_configure.pl脚本创建新的配置文件。


3.修改站点统计配置文件


为站点www.benet.com建立好配置文件以后,还需要对其做进一步的修改。修改的内容主要包括指定要分析的web日志文件和指定用来存放统计数据的目录。


[root@kang tools]# vim /etc/awstats/awstats.www.benet.com.conf 
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第22张图片

Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第23张图片

其中,LogFile用来指定日志路径,应设置web日志文件的实际位置,DirData用来指定数据目录,可以采用默认值,但需要创建指定的目录(/var/lib/awstats)。

[root@kang tools]# mkdir /var/lib/awstats
4.执行日志分析,并设置cron计划任务


使用AWStats提供的awstats_updateall.pl脚本,可以更新所有站点(根据站点配置文件)的日志统计数据。执行该脚本时。系统将会自动分析新增的日志内容,并将分析结果更新到统计数据库中。


Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第24张图片

[root@kang tools]# chmod +x awstats_updateall.pl 
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第25张图片

执行脚本:

[root@kang tools]# ./awstats_updateall.pl now
Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第26张图片

由于web日志文件的内容是在不断更新的,为了及时反馈网站访问情况,日志分析工作也需要定期、自动地执行。通过crond服务可设置计划任务,一般建议每五分钟执行一次日志分析任务。


[root@kang ~]# crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pi now


访问AWStats分析系统


访问站点http://192.168.197.177/awstats/awstats.pl?config=www.benet.com后,即可看到AWStats日志分析系统的统计页面,该页面分别按访问时间,用户来源,所用浏览器等类别列出各种详细的网站访问情况。


Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解_第27张图片

在该页面中,拖动窗口右侧的滚动条即可查看整个分析报告内容,或者单机左侧导航栏中的链接,可以选择查看其中的部分内容。

在按参观时间类别下,可以查看每小时、每天、每周、每月的网站访问次数、网页数、文件数等信息。

在浏览器统计类别下,可以查看用户的参观时间,所用的操作系统、浏览器版本、搜索本网站的关键词等相关信息。


注意:在访问AWStats系统时,需要指定awstats目录、脚本位置、统计目标等信息,这样既不便于记忆,输入时也比较麻烦。为了简化操作,可以在web根目录下建立一个自动跳转的HTML网页。


例如:执行以下操作后,用户只要访问http://192.168.197.177/awb.html,即可自动跳转到www.benet.com站点的AWStats日志分析页面。


[root@kang ~]# vim /usr/local/httpd/htdocs/awb.html
内容如下:



 



~

到这里有关Apache2.2.17版本源码编译安装以及AWStats日志系统的安装使用,演示完毕了!!!

希望对你有所帮助!!!提前恭祝小年快乐!!!!再见!!!!






你可能感兴趣的:(薄凉小伙的运维成长之路)