Apache 编译安装2.2

一、Apache介绍

1、Apache是什么?

  Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。Apache源于NCSA server服务。

1.1 Apache的应用场合

  1》使用Apache运行静态HTML页,图片,(处理静态文件不如Nginx)

  2》使用Apache结合PHP、Perl等程序,lamp被称之为经典组合

  3》使用Apache结合Tomcat/resin运行jsp,java等程序,成为中小企业的首选

  4》使用Apache做代理.负载均衡,rewrite规则过滤等

二、Apache的编译安装

2、开始安装Apache软件包

  Apache的安装非常简单,具体操作过程如下

2.1 下载安装包

[[email protected] /]# mkdir -p /home/loveyu/tools
[[email protected] /]# cd  /home/loveyu/tools
[[email protected] tools]# wget http://mirrors.hust.edu.cn/apache
[[email protected] tools]# ls -l
-rw-r--r-- 1 root root 7684420 Jan 13 02:38 httpd-2.2.32.tar.gz

2.2 编译安装Apache

  编译安装参数说明(通过命令./configure -help 查看Apache的编译参数)

  1》./configure检查编译环境是否符合编译需求,并定义当前程序编译时启用哪个特性或功能,以及安装路径的定义

  2》--prefix=/usr/local/apache指定Apache的安装路径为/usr/local/apache,如果不指定安装路径,则为默认路径为/usr/local/apache

  3》--enable-deflate提供对内容的压缩传输编码支持,一般html,js,css的内容的站点,使用此参数会极大提高传输速度,提升访问者的体验

  4》--enable-expires激活允许通过配置文件控制http的"expires:"金额"cache-control"头内容,及即对网站图片,js,css等内容,提供客户端浏览器缓存设置。这是Apache调优的一个重要选项之一

  5》--enable-heads 提供允许对http请求头的控制

  6》--with-mpm-worker选择Apache mpm的模式为worker模式,因worker模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求,而系统资源的开销小于基于进程的mpm prefork(默认为他)

  7》--enable-rewrite 提供基于URL规则的重写功能。即根据已知URL地址,转换其他想要的URL地址,这是Apache调优的一个重要选项之一,(伪静态功能)

  8》 --enable-so激活Apache服务的DSO(全称Dynamic Shared Object,动态共享对象)支持,即在以后可以以DSO的、方式编译安装共享模块,这个模块本身不能以DSO方式编译

[[email protected] tools]#./configure --prefix=/usr/local/apache --enable-deflate --enable-expires --enable-heads --with-mpm-worker --enable-rewrite  --enable-so
[[email protected] tools]#make    #执行编译命令
[[email protected] tools]#make install 
[[email protected]  tools]# ln -s /var/local/apache/   /application/apache #将其做个做链接,方便使用
[[email protected]  tools]# ls -ld /application/apache
lrwxrwxrwx 1 root root 17 May  7 11:45 apache -> /usr/local/apache
[[email protected] local]# /application/apache/bin/apachectl -l检查安装

 /application/apache/bin/目录下apachectl是一个shell脚本,用来启动、检查、Apache服务。

2.2 检验安装成果

   apache 完成安装后并不直接提供服务,需要先启动Apache服务,具体操作如下

/application/apache/bin/apachectl  start
[[email protected] local]# netstat -lnt   #检查80端口
lsof -i tcp:80   #反查80端口
ps -ef |grep http查看进程
在浏览器中输入192.168.0.102出现IT works则表时Apache安装成功

注意:在此过程中要学会看/application/apache/logs/error_log Apache的错误日志。

2.3 部署一个简单的web站点

   Apache的默认站点目录,是安装目录下的/application/apache/htdocs,这可以从Apache主配置文件/application/apache/conf/httpd.conf中查到

[[email protected] local]# cat /application/apache/conf/httpd.conf|grep -i Documentroot
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/usr/local/apache/htdocs"执行默认的Apache站点目录
# This should be changed to whatever you set DocumentRoot to.
# access content that does not live under the DocumentRoot.
[[email protected] local]#cat  /application/apache/htdocs/index.html
<html><body><h1>my name is fenghui</h1></body></html>

2.4Apache的bin和log子目录说明

1》bin 下的子目录
ab            #Apache http服务器性能测试工具,简单易用,同类软件有jmeter,loadrunner,webbench等
apachectl     #Apache的启动命令,apachectla是一个脚本
apxs          #它是一个为Apache http服务器编译和安装扩展模块的工具,在进行DSO方式模块编译时会用到.如后文在编译PHP软件时就用到了此命令--with-apxs2=/application/apache/bin/apxs
htcacheclean  #这是清理磁盘缓冲区的命令,需要在编译时指定相关参数才可以,一般很少用
htpasswd      #建立和更新基本认证文件,如,配置nagios等监控服务时会用到
httpd         #httpd为apache的控制命令,也还可以用apachect执行httpd
rotatelogs   #apache 自带的日志轮询命令,也可以用,但在老男孩的工作场景习惯有cronolog等替代
2》logs子目录(这是Apache默认的日志路径包括错误日志即访问日志)
access_log   #这是Apache的默认访问日志文件,使用tail -f access.log 可以查看网站用户访问情况信息
error_log    #这是Apache的错误日志文件,如果Apache出现启动故障等问题时,一定要看这个文件
httpd.pid    #这是httpd的pid文件,http进程启动后,会把所有进程的ID号写到此文件
[[email protected] apache]# ps -ef |grep httpd|grep -v grep
root     28666     1  0 11:56 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   28667 28666  0 11:56 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   28668 28666  0 11:56 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   28669 28666  0 11:56 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   28670 28666  0 11:56 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   28671 28666  0 11:56 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   28727 28666  0 12:02 ?        00:00:00 /usr/local/apache/bin/httpd -k start
[[email protected] apache]# cat logs/httpd.pid 
28666
3》modules Apache的模块目录,比如PHP,memcaceh等模块编译后都在这里

2.5Apache的扩展文件

Apache的扩展配置文件是通过在httpd.conf主配置文件中嵌入include命令实现的,不过默认情况是注释状态
摘录http.conf主配置文件 中部分include行,如下所示;
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
如果取消此行前面的#号,表示开启虚拟主机的配置,即加载conf/extra/httpd-vhosts.conf
# Local access to the Apache HTTP Server Manual
#Include conf/extra/httpd-manual.conf
# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf
[[email protected] conf]# tree -L 2 /application/apache/conf/extra/
/application/apache/conf/extra/
├── httpd-autoindex.conf
├── httpd-dav.conf
├── httpd-default.conf  #这个文件配置的是Apache的相关服务参数,如超时时间,保持连接时间等
├── httpd-info.conf
├── httpd-languages.conf  #语言支持配置
├── httpd-manual.conf
├── httpd-mpm.conf   #服务器池管理,也就是优化Apache的一个配置文件,如选择Apache的模式及配置连接数等,常用的模式有worker模式和profork模式
├── httpd-multilang-errordoc.conf
├── httpd-ssl.conf   #提供Apache SSL支持配置文件
├── httpd-userdir.conf
└── httpd-vhosts.conf   #这是虚拟主机的配置文件

2.6Apache虚拟主机的配置

2.6.1基于域名的虚拟主机实战配置

1》开启配置文件httpd.conf中包含httpd-vhosts.conf文件配置

使用vi命令编辑Apache主配置文件httpd.conf。具体步骤:
[[email protected] loveyu]# cd /application/apache/conf/
[[email protected] conf]# cp httpd.conf httpd.conf.loveyu.20170511
[[email protected] conf]# vi httpd.conf
404 # Virtual hosts
405 Include conf/extra/httpd-vhosts.conf
#取消"#"号等于打开虚拟主机的配置

   2》配置虚拟主机(如果默认的虚拟主机配置不删除,重启Apache会报语法错误)进入虚拟主机配置文件,编辑虚拟主机配置文件 vi httpd-vhosts.conf具体操作如下

[[email protected] /]# cd /application/apache/conf/extra/
[[email protected] extra]# cp httpd-vhosts.conf httpd-vhosts.conf.loveyu.20170511
[[email protected] extra]# grep -v \# httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/blog"     #(这个站点目录必须存在不然会报错)
ServerName blog.feitianxihuanni.org
ServerAliasfeitain.org
ErrorLog "logs/blog-error_log"
CustomLog "logs/blog-access_log" common
</VirtualHost>
[[email protected] extra]# mkdir /var/blog -p
#检查语法错误:
[[email protected] extra]# ../../bin/apachectl -t
Syntax OK

 3》建立虚拟主机的站点目录和首页index.html(测试用)

     [[email protected] extra]# mkdir /var/blog -p

     [[email protected] extra]# chown -R apache.apache /var/blog赋予权限,这个目录就是将来放程序用的。此处的授权相当重要,本命令不是最安全的配置,更优化的站点目录权限控制方法,见后文优化Apache部分,对于本节可以不执行

[[email protected] extra]# ../../bin/apachectl  graceful重启Apache服务

#提示:这里是graceful参数,graceful表示优雅的重启,这个参数可以在重启是使正在浏览的用户没有感觉,不会强行中断用户的访问参数,而是处理完毕请求后在重新启动

   4》在我们的笔记本电脑上编辑hosts文件添加如下内容

     hosts文件的通用路径为:C:\Windows\System32\drivers\etc,hosts文件是本地的DNS解析文件,其功能是把指定的域名解析成对应的IP,多个域名对应一个IP,默认情况下hosts文件中的配置解析优先于DNS服务器。

    192.168.0.102www.feitian.com添加到hosts文件中,下面是虚拟主机的配置文件,加入了扩展模块,在后面的博客中我们会介绍。

[[email protected] extra]# egrep  -v "^#|^$"  httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/blog"
    ServerName www.feitian.com
    ServerAlias	feitian.com
    ErrorLog "logs/blog-error_log"
     # CustomLog "logs/blog-access_log" common
    CustomLog "|/usr/local/sbin/cronolog /var/logs/access_www_%w.log" combined
	ExpiresActive On
	ExpiresDefault "access plus 12 month"
	ExpiresByType text/css "now plus 12 month"
	ExpiresByType image/jpeg "access plus 12 months"
	ExpiresByType image/x-icon "access plus 2 months"
	ExpiresByType text/javascript "access plus 12 month"
	ExpiresByType image/gif "access plus 12 month"
	ExpiresByType image/jpg "access plus 12 mont"
	ExpiresByType image/png "access plus 12 mont"
	ExpiresByType application/x-shockwave-flash "access plus 12 month"
	ExpiresByType video/x-flv "access plus 12 month"
	<ifmodule mod_deflate.c>  
	AddOutputFilterByType DEFLATE	text/html text/plain text/css  text/javascript  text/css
	AddOutputFilterByType DEFLATE	application/x-httpd-php
	AddOutputFilterByType DEFLATE	application/x-javascript
	AddOutputFilter DEFLATE js css
	DeflateCompressionLevel 6  
	SetOutputFilter DEFLATE  
	</ifmodule> 
</VirtualHost>

下面是站点目录中的index.html文件

[[email protected] extra]# ll /var/blog/
total 4
-rw-r--r-- 1 root root 161 Aug  3 18:50 index.html
[[email protected] extra]# cat /var/blog/index.html 
<html>
<head><title>feitian blog</title>
</head> 
<body>
<br><br><br><br>
I am fenghui
<br><br>
https://user.qzone.qq.com/2219701263/infocenter
</body>
</html>
时间: 2024-12-20 16:37:03

Apache 编译安装2.2的相关文章

apache编译安装

实验环境: centos6.3 2.6.32-431.20.3.el6.i686 用到的包: APR 1.5.1 APR-util 1.5.3 httpd-2.4.9 操作步骤: 第一步:根据依赖关系,先解压.编译安装apr1.5.1 # tar xf apr-1.5.1.tar.bz2 -C /home # cd /home/apr-1.5.1 # ./configure --prefix=/usr/local/apr # make && make install 第二步:解压.编译安装

LAMP--2.Apache 编译安装

apache 官网下载地址:http://www.apache.org/dyn/closer.cgi .建议使用国内开源镜像地址:http://mirrors.aliyun.com/apache/httpd/httpd-2.2.31.tar.bz2  或 http://mirrors.sohu.com/apache/httpd-2.2.31.tar.bz2 .所谓的apache,真正的名字是 httpd. 下载 [[email protected] ~]# cd /usr/local/src [

apache 编译安装与做nagios前端展示

apache编译安装篇 安装apache需安装以下的几个包,apr apr-util,pcre等,当然这几个包也可以使用由系统本身自带的包,但是这里我们编译安装这几个包. 2.下载安装apr, 把文件放到/usr/local/src目录下, tar -zxvf  apr-1.5.2.tar.gz cd  apr-1.5.2 ./configure --prefix=/usr/local/apr/ make make install 3.下载安装 apr-utils tar -zxvf apr-u

apache编译安装 httpd 2.2 httpd 2.4

#apache编译安装#httpd 2.2 , httpd 2.4 #!/bin/sh #apache编译安装 #httpd 2.2 , httpd 2.4 #centos #rpm -e httpd* Ve=2.2 [ $1 = 2.4 ] && Ve=2.4 || Ve=2.2 #设置安装版本2.2或2.4 #目录 Ddir=/it/tools #定义下载目录 Sdir=/www/server #定义安装目录 Adir=$Sdir/apache$Ve [ ! -d $Ddir ] &a

Linux Apache 编译安装;

Apache是常用的WEB服务端工具,在linux上称作httpd,服务名也是httpd: 在CentOS 6上默认自带httpd2.2版本,7上默认是2.4版本: 2.4的http支持使用event模型(每个线程对应一个客户请求): 在编译安装之前需要确定apr,和apr-util已经安装,在编译安装apr-util时需要制定apr的安装路径即--with-apr=/some/PATH # mkdir /src    //创建一个存放源码包的目录: 到apache官网下载httpd2.4的sr

Apache编译安装的时候出现的报错

在2.2之前版本在编译安装Apache的时候不需要直接编译 --with-included-apr这个就可以了,但是在2.4的版本时候会报错 configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/. 它的意思是说:需要下载apr和apr-utils并解压到 ./sr

apache编译安装参数说明

./configure //配置源代码树--prefix=/usr/local/apache2 //体系无关文件的顶级安装目录prefix ,也就apache的安装目录.如果没有指定PREFIX,默认会装到/usr/local/apache2.--enable-module=so //打开 so 模块,so 模块是用来提 dso 支持的 apache 核心模块--enable-deflate=shared //支持网页压缩--enable-expires=shared //支持 http 控制-

Linux rhel 6.4 apache编译安装以及简单配置过程(1)

Linux rhel  6.4 编译安装apache过程(1) 注:以下摘取的都是安装过程中执行的命令,命令反馈没有贴出来以"......"代替.观看的时候注意执行命令时所在的目录. 安装平台 [[email protected] ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.4 (Santiago) 需要的工具版本以及下载地址 1.httpd-2.4.25.tar.gz (http://ht

apache编译安装方法及配置

一.实验安装环境 系统:CentOS6.6-i686 软件:httpd-2.2.31.tar.gz 关闭防火墙:/etc/init.d/iptables stop 关闭selinux:setenforce  0 二.Apache简介及其安装 1.Apache简介 Apache是web服务软件,提供http服务. 2.Apache的特点 简单.速度快.应用广泛,主要是应用于静态小文件. apache结合php可以实现动态. 3.Apache下载及其编译安装 yum -y install zlib