最近要开始学习nagios监控方面的知识了,但是nagios与apache结合的比较紧密,所以本篇文章就先把apache的源码安装学习下。
我们现在分以下步骤进行安装apache:
1、安装编译环境
2、卸载原有apache
3、下载解压源码包
4、安装apache
5、测试apache
6、查看apache安装生成的目录
7、查看apache的配置文件
8、apache加入系统服务
一、安装编译环境
在安装apache之前,我们需要安装编译apache时所需要的相关软件包,如下:
yum-yinstallgccgcc++zlibzlib-devel
二、卸载原有Apache
在源码安装apache之前,我们要先卸载系统中,已经通过rpm包安装的apache。如下:
rpm-qa|grephttpd
rpm-e--nodepshttpd-2.2.15-29.el6.centos.x86_64
rpm-e--nodepshttpd-tools-2.2.15-29.el6.centos.x86_64
三、下载解压源码包
下载apache的源码包,我们本次实验以apache的2.2.27版本为例。apache的源码包建议直接去apache官网下载,如下:
使用如下命令,下载apache源码包:
wgethttp://apache.fayea.com/httpd/httpd-2.2.27.tar.gz
解压下载的源码包,因为下载的是tar.gz的源码包,所以我们有两种解压方法。
方法一、利用gunzip进行解压,如下:
gunzip-chttpd-2.2.27.tar.gz>httpd-2.2.27.tar
-c参数可以不删除源文件
tar-xfhttpd-2.2.27.tar
方法二、直接使用tar解压,如下:
tar-zxfhttpd-2.2.27.tar.gz
或者tar-xfhttpd-2.2.27.tar.gz
四、安装apache
安装apache,我们首先要编译,然后进行安装。
我们可以通过configure命令查看编译时的相关帮助,如下:
./configure--help
具体编译如下:
./configure--prefix=/usr/local/apache2--enable-rewrite--enable-so--enable-headers--enable-expires--with-mpm=worker--enable-modules=most--enable-deflate
--prefix=/usr/local/apache2表示指定apache的安装路径,默认安装路径为/usr/local/apache2
--enable-rewrite提供URL规则的重写更嫩那个,即根据已知的URL地址,转换为其它想要的URL地址
--enable-so激活apache服务的DSO(DynamicSharedObjects动态共享目标),即在以后可以以DSO的方式编译安装共享模块,这个模块本身不能以DSO方式编译。
--enable-headers提供允许对HTTP请求头的控制。
--enable-expires激活荀彧通过配置文件控制HTTP的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css等内容,提供客户端浏览器缓存的设置。这个是apache调优的一个重要选项之一。
--with-mpm=worker选择apachempm的模式为worker模式。为worker模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求。而系统资源的开销小玉基于进程的MPMprefork。如果不指定此参数,默认的模式是prefork进程模式。这个是apache调优的一个重要选项之一。
--enable-deflate提供对内容的压缩传输编码支持,一般是html、js、css等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是apache调优的一个重要选项之一。
make
makeinstall
安装完毕apache,查看安装后的目录,如下:
tree-L1/usr/local/apache2/
五、测试apache
将apache的启动脚本复制到/etc/rc.d/init.d这个目录下,如下:
cp/usr/local/apache2/bin/apachectl/etc/init.d/httpd
其实apache的启动是调用/usr/local/apache2/bin/httpd这个命令,查看该脚本的内容,如下:
cat/etc/init.d/httpd|grep-v^#|grep-v^$
启动apache,如下:
/etc/init.d/httpdstart
netstat-lntp|grep80
lsof-i:80
也可以使用/usr/local/apache2/bin/httpd进行启动。如下:
/usr/local/apache2/bin/httpd–kstart
apache启动完毕后,我们来查看下,可以使用如下命令:
wgethttp://192.168.1.213
通过上图,我们可以很明显的看到apache已经正常启动。
六、查看apache安装生成的目录
apache正常启动后,我们来查看apache安装生成的目录。如下:
bin主要存放程序命令目录,。
conf主要存放apache配置文件。
htdocs主要存放站点目录。
logs主要存放默认日志文件。
modules主要存放apache的运行模块。例如php、memcache编译后的模块存放在这里。
七、查看apache的配置文件
apache的配置文件httpd.conf存放在conf目录下,如下:
查看httpd.conf配置内容,如下:
egrep-v'^[]*#|^$'/usr/local/apache2/conf/httpd.conf|nl
ServerRoot"/usr/local/apache2"表示apache根目录,该目录应只有root用户具有访问,一般不需要修改。
Listen80表示apache监听端口,默认为80。如果同时监控81端口,可以加一行:Listen81。
AddTypeapplication/x-httpd-php.phpLoadModulephp5_modulemodules/libphp5.so用于apache与php进行集成时使用。
UserdaemonGroupdaemon表示apache运行时的用户及组,默认为daemon,建议修改,如apache。
DocumentRoot"/usr/local/apache2/htdocs"表示apache默认的web站点目录,路径结尾不要添加斜线。
ServerAdminyou@example.com表示系统管理员的邮箱,此项为非重要选项。当网站出现问题时,面面会显示此页面地址。
DirectoryIndexindex.phpindex.html配置默认的apache首页。如果虚拟主机未配置,默认应用这里的配置。
ErrorLog"logs/error_log"错误日志路径。
LogLevelwarn错误日志级别。
ScriptAlias/cgi-bin/"/usr/local/apache2/cgi-bin/"配置cgi别名。
八、apache加入系统服务
为了让apache开机启动,我们可以把apachectl启动脚本加入rc.local文件中,如下:
echo"/usr/local/apache2/bin/apachectlstart">>/etc/rc.local
cat/etc/rc.local
我们也可以通过把apache加入系统服务,来启动apache。把apache添加为系统服务有两种方法,第一种是通过chkconfig进行添加,第二种是直接添加系统的各个启动级别。
我们先来介绍第一种方法,修改启动httpd脚本加入如下两行命令,如下:
#chkconfig:23457060
#description:apache
说明:
chkconfig:23457060中的2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,5是图形界面X。
70是指脚本将来的启动顺序号,如果别的程序的启动顺序号比70小(比如44、45),则脚本需要等这些程序都启动以后才启动。60是指系统关闭时,脚本的停止顺序号。
description:apache关于脚本的简短描述。
使用chkconfig进行添加,如下:
chkconfig--addhttpd
chkconfig|grephttpd
chkconfig--addhttpd命令的作用是把/etc/init.d/httpd加入到/etc/rc.d/rc0.d到/etc/rc.d/rc6.d目录下。如下:
find/etc-name*httpd
开启apache开机启动,使用如下命令:
chkconfighttpdon
chkconfig|grephttpd
经过以上操作apache就可以开机启动。