apache的源码安装详细过程全纪录

 更新时间:2015年01月05日 16:57:47   投稿:hebedich  
这篇文章主要介绍了apache的源码安装详细过程全纪录,需要的朋友可以参考下

最近要开始学习nagios监控方面的知识了,但是nagios与apache结合的比较紧密,所以本篇文章就先把apache的源码安装学习下。

我们现在分以下步骤进行安装apache:

1、 安装编译环境

2、 卸载原有apache

3、 下载解压源码包

4、 安装apache

5、 测试apache

6、 查看apache安装生成的目录

7、 查看apache的配置文件

8、 apache加入系统服务

一、安装编译环境

在安装apache之前,我们需要安装编译apache时所需要的相关软件包,如下:

yum -y install gcc gcc++ zlib zlib-devel

二、卸载原有Apache

在源码安装apache之前,我们要先卸载系统中,已经通过rpm包安装的apache。如下:

rpm -qa |grep httpd

rpm -e --nodeps httpd-2.2.15-29.el6.centos.x86_64

rpm -e --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64

三、下载解压源码包

下载apache的源码包,我们本次实验以apache的2.2.27版本为例。apache的源码包建议直接去apache官网下载,如下:

使用如下命令,下载apache源码包:

wget http://apache.fayea.com/httpd/httpd-2.2.27.tar.gz

解压下载的源码包,因为下载的是tar.gz的源码包,所以我们有两种解压方法。

方法一、利用gunzip进行解压,如下:

gunzip -c httpd-2.2.27.tar.gz>httpd-2.2.27.tar

-c参数可以不删除源文件

tar -xf httpd-2.2.27.tar

方法二、直接使用tar解压,如下:

tar -zxf httpd-2.2.27.tar.gz

或者tar -xf httpd-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(Dynamic Shared Objects动态共享目标),即在以后可以以DSO的方式编译安装共享模块,这个模块本身不能以DSO方式编译。

--enable-headers提供允许对HTTP请求头的控制。

--enable-expires激活荀彧通过配置文件控制HTTP的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css等内容,提供客户端浏览器缓存的设置。这个是apache调优的一个重要选项之一。

--with-mpm=worker选择apache mpm的模式为worker模式。为worker模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求。而系统 资源的开销小玉基于进程的MPM prefork。如果不指定此参数,默认的模式是prefork进程模式。这个是apache调优的一个重要选项之一。

--enable-deflate提供对内容的压缩传输编码支持,一般是html、js、css等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是apache调优的一个重要选项之一。

make

make install

安装完毕apache,查看安装后的目录,如下:

tree -L 1 /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/httpd start

netstat -lntp|grep 80

lsof -i :80

也可以使用/usr/local/apache2/bin/httpd进行启动。如下:

/usr/local/apache2/bin/httpd –k start

apache启动完毕后,我们来查看下,可以使用如下命令:

wget http://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用户具有访问,一般不需要修改。

Listen 80表示apache监听端口,默认为80。如果同时监控81端口,可以加一行:Listen 81。

AddType application/x-httpd-php .php LoadModule php5_module modules/libphp5.so用于apache与php进行集成时使用。

User daemon Group daemon表示apache运行时的用户及组,默认为daemon,建议修改,如apache。

DocumentRoot "/usr/local/apache2/htdocs"表示apache默认的web站点目录,路径结尾不要添加斜线。

ServerAdmin you@example.com表示系统管理员的邮箱,此项为非重要选项。当网站出现问题时,面面会显示此页面地址。

DirectoryIndex index.php index.html配置默认的apache首页。如果虚拟主机未配置,默认应用这里的配置。

ErrorLog "logs/error_log"错误日志路径。

LogLevel warn错误日志级别。

ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"配置cgi别名。

八、apache加入系统服务

为了让apache开机启动,我们可以把apachectl启动脚本加入rc.local文件中,如下:

echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.local

cat /etc/rc.local

我们也可以通过把apache加入系统服务,来启动apache。把apache添加为系统服务有两种方法,第一种是通过chkconfig进行添加,第二种是直接添加系统的各个启动级别。

我们先来介绍第一种方法,修改启动httpd脚本加入如下两行命令,如下:

#chkconfig: 2345 70 60

#description: apache

说明:

chkconfig: 2345 70 60中的2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,5是图形界面X。

70是指脚本将来的启动顺序号,如果别的程序的启动顺序号比70小(比如44、45),则脚本需要等这些程序都启动以后才启动。60是指系统关闭时,脚本的停止顺序号。

description: apache关于脚本的简短描述。

使用chkconfig进行添加,如下:

chkconfig --add httpd

chkconfig |grep httpd

chkconfig --add httpd命令的作用是把/etc/init.d/httpd加入到/etc/rc.d/rc0.d到/etc/rc.d/rc6.d目录下。如下:

find /etc -name *httpd

开启apache开机启动,使用如下命令:

chkconfig httpd on

chkconfig |grep httpd

经过以上操作apache就可以开机启动。

相关文章

  • Win10 安装Linux ubuntu-18.04双系统(安装指南)

    Win10 安装Linux ubuntu-18.04双系统(安装指南)

    这篇文章主要介绍了Win10+Linux ubuntu-18.04双系统安装教程,本文分步骤给大家记录下来,需要的朋友可以参考下
    2019-10-10
  • linux配置SSH全过程

    linux配置SSH全过程

    这篇文章主要介绍了linux配置SSH全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 使用 Linux seq 命令生成数字序列(推荐)

    使用 Linux seq 命令生成数字序列(推荐)

    seq命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式、宽度、分割符号进行控制。这篇文章主要介绍了使用 Linux seq 命令生成数字序列,需要的朋友可以参考下
    2020-01-01
  • Linux下Jenkins忘记密码的操作步骤

    Linux下Jenkins忘记密码的操作步骤

    这篇文章主要介绍了Linux下Jenkins忘记密码的操作步骤,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • ROS控制Turtlebot3移动机器人的基础教程

    ROS控制Turtlebot3移动机器人的基础教程

    这篇文章主要给大家介绍了关于ROS控制Turtlebot3移动机器人的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Linux系统中安装gcc和kernel-devel的方法

    Linux系统中安装gcc和kernel-devel的方法

    下面小编就为大家带来一篇Linux系统中安装gcc和kernel-devel的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 在 Linux 中不使用 CD 命令进入目录/文件夹的方法

    在 Linux 中不使用 CD 命令进入目录/文件夹的方法

    众所周知,如果没有 cd 命令,我们无法 Linux 中切换目录。接下来通过本文给大家介绍了在 Linux 中不使用 CD 命令进入目录/文件夹的方法,需要的朋友可以参考下
    2019-04-04
  • Linux下apache如何限制并发连接和下载速度

    Linux下apache如何限制并发连接和下载速度

    在Linux下限值Apache的并发连接数和下载速度需要用到一款Apache的扩展模块mod_limitipconn,下面我们就来讨论mod_limitipconn的安装使用方法
    2014-11-11
  • Apache为mysql以及自己的项目设置虚拟路径

    Apache为mysql以及自己的项目设置虚拟路径

    Apache为mysql以及自己的项目设置虚拟路径
    2009-12-12
  • Linux设备之网络驱动介绍

    Linux设备之网络驱动介绍

    大家好,本篇文章主要讲的是Linux设备之网络驱动介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论