LAMP—Apache编译安装

一、前言:

  httpd-2.2与 httpd-2.4版本相比增加了许多新特性:

   1、MPM支持运行时装载

   2、支持event

   3、支持异步读写

   4、支持每模块每目录使用不同的日志级别

   5、每请求配置<IF>

   6、增强版的表达式分析器

   7、支持毫秒级的keeplive timeout

   8、基于主机名的虚拟主机不在需要NameVirtaulHost

   9、支持用户自定义变量

  10、新增一些模块:mod_proxy,fcgi,mod_ratelimit,mod_request,mode_remoteip

  11、修改了一些配置机制,不在使用order,allow,deny来实现基于ip的访问控制

一次web请求响应的交换过程:web1.png

 

 1、建立连接:接收客户端连接请求

 2、接收请求:从来自于网络的请求报文中读取一次特定的资源请求

 3、处理请求:对请求报文进行解析,获取请求的资源等信息;根据请求报文的首部来判断用户请求的资料

 4、访问资源:获取报文指定请求的资源,web服务器及web资源服务器,负责发送预先创建好的或动态生成的内容,这些的存放位置是docroot

 5、构建相应报文:

 6、发送相应报文:有长连接和短连接模式

 7、记录日志

并发响应模型:

  单进程web服务器:启动一个进程接收请求,而且一次只能处理一个请求,当当前请求处理结束后再接收并处理后续的请求;

  多进程web服务器:进程尺(线程池);启动多个进程,每个进程处理一个请求,预生成模式,事先生成过个进程(线程池);

 复用的I/0的web服务器:一个进程响应多个请求,基于事件驱动

 复用的I/0多线程web服务器:一个进程响应n个请求,启动m个进程:

Apache的工作模式:

  prefork:多进程模型,每个进程响应一个请求;稳定性好,但并发能力有限;预先生成多个空闲进程;(selec()调用,最大1024个)

  worker:多进程模型,每个进程可生成多个线程,每个线程响应一个请求,预先生成多个空闲线程

  event:一个进程直接响应n个请求,可同时启动多个进程,(httpd-2.2中测试使用,httpd-2.4可生产使用)

二、Apache编译安装过程

安装编译环境:Development Toos 和 Server Platform Development

  1、编译安装apr

   解压

  # tar xf apr-1.5.2.tar.gz -C /usr/src

  # cd /usr/src/apr-1.5.2/

   执行安装目录

  # ./configure –prefix=/usr/local/lamp/apr

   编译安装

  # make && make install 

 2、编译安装呢apr-util

   解压

  # tar  xf apr-util-1.5.4.tar.gz -C /usr/src/

  # cd /usr/src/apr-util-1.5.4/

   指定安装路径,指明apr安装路径

  # ./configure –prefix=/usr/local/lamp/apr-util  –with-apr=/usr/local/lamp/apr/

   编译安装

  # make && make install

 3、编译安装httpd

 (1)解压

  # tar xf httpd-2.4.12.tar.bz2  -C /usr/src

  # cd /usr/src/httpd-2.4.12/

 (2)配置编译选项(可使用./configure –help查看所需要的选项)

  # ./configure –prefix=/usr/local/lamp/apache  –enable-so –enable-ssl –sysconfdir=/etc/apache/ –enable-modules=most  –enable-mods-shared=all  –enable-expires  –enable-remoteip  –enable-proxy  –enable-mpms-shared=all  –enable-cgi   –enable-rewrite  –with-pcre –with-libxml2  –with-mpm=worker  –with-apr=/usr/local/lamp/apr –with-apr-util=/usr/local/lamp/apr-util/ 

  选项解释:

    –prefix:指定安装路径

    –enable-so:启用动模块的动态装卸载功能,及启用DSO

    –eanble-ssl:启用ssl加密模块

    –sysconfdir:指定配置文件路径

    –enable-moudles: 启用那些模块

    –enable-mods-shared: 启动那些共享模块

    –enable-expires: 启用exprires标题控制

    –enable-remoteip:作用将http头部中的客户端ip修改为代理服务器或者负载均衡服务器的ip

    –with-pcre: 兼容性正则表达式模块

    –enable-proxy:启用代理模块

    –enable-mpms-sahred:启用那些动态装卸载模块

    –enable-cgi:启动cgi模块

    –enable-rewrite:启动重写模块

    –enable-libxml2:启用xml解释器模块

    –with-mpm:设定默认工作模式

    –with-apr:指明arp位置

    –with-apr-util: 指明arp-util的安装位置

 (3)编译安装

  # make && make install 

 (4)提取httpd的二进制文件,在/etc/profile.d/目录中创建http.sh,添加内容如下:

   8.png

    

 (5)重新读取配置文件   7.png

 (6)验证头文件信息

   10.png

   

 4、启动httpd服务,有两种方法:

  第一种方法:使用编译安装时,httpd自带的启动服务脚本启动

  (1)确认编译安装完成后自带服务启动脚本

14.png

  (2)使用此脚本启动服务:

    15.png

  

  (3)查看启动是否成功,如果没有成功,查看日志,分析原因   3.png

 (4)根据错误提示,编辑httpd的配置文件,检查错误日志提到的模块信息

   4.png

 (5)在此运行脚本,启动httpd服务

16.png

 (6)使用浏览器测试是否可以正常访问

   17.png

  第二种方法:如果已安装了rpm格式的httpd,可以修改httpd服务,让其可以控制编译安装的httpd

  (1)确认系统已经安装rpm格式的httpd

     2.png

  (2) 修改rpm格式的httpd启动脚本,修改内容如下

    11.png

   (3)启动httpd服务

     12.png13.png

   (4)使用浏览器测试访问

      17.png  

  

  三、虚拟主机配置

    编辑/etc/apache/httpd.conf文件,注释掉主服务器的文档目录,启动虚拟主机的配置文件目录,监听在多个端口

     24.png

     21.png  

     22.png      

   1、配置虚拟主机

    (1)基于端口的虚拟主机

     ①编辑/etc/apache/extra/httpd-vhosts.conf,添加虚拟主机

     23.png

      

    ②创建/var/www/{a.com,b.com},并在其目录下创建index.html默认文件

      26.png

   

    ③重新启动httpd服务  25.png

  

 ④测试基于端口的虚拟主机是否可以成功访问

   27.png

   29.png

   

  ⑤访问被拒绝,解决办法,编辑/etc/apache/extra/httpd-vhosts.conf,添加授权信息

    30.png 

  ⑥重新载入httpd配置文件,重新访问

   31.png

   32.png

  33.png

  

 (2)配置基于IP地址的虚拟主机

   ①编辑/etc/apache/extra/httpd-vhosts.conf,修改内容如下

34.png

 ②给主机配置多个ip地址

 35.png

 

 ③重启httpd服务器,用不同的ip访问web服务  

   38.png

   36.png

   37.png

    (3)配置基于主机名的虚拟主机

      ①编辑/etc/apache/extra/httpd-vhosts.conf,修改虚拟主机配置文件

       39.png  

     

    ②修改本地主机的host文件,添加以下信息

     40.png

    ③重启httpd服务,使用主机名进行访问

     41.png

     42.png

    43.png

   

   

原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/4900

(0)
上一篇 2015-06-15 16:22
下一篇 2015-06-15 16:29

相关推荐

  • 第10周作业(下)

    4、写一个脚本(1) 能接受四个参数:start, stop, restart, statusstart: 输出“starting 脚本名 finished.”(2) 其它任意参数,均报错退出。 #!/bin/bash # [ $# -ne 1 ] && echo &quo…

    Linux干货 2017-01-03
  • haproxy实验

    实验1: 部署discuz 1、  不做会话绑定 基于roundrobin —————————10.1.72.40|30————————&#821…

    Linux干货 2016-12-05
  • MHA安装包及其依赖包下载

    MySQL MHA是一款在业界广泛部署的MySQL高可用软件。但是在安装时,需要安装较多依赖包,并且有些依赖包在操作系统中默认的yum源是不存在的,因此需要到多个地方去寻找相应的包,费时费力。特别是在某些公司的网络政策,只允许少数机器连接外网,因此部署MHA更是苦不堪言。     为了方便大家也是方便以后我自己的使用,…

    Linux干货 2016-12-05
  • nfs与samba实现文件共享服务的流程

    nfs与samba实现文件共享服务的流程     nfs与samba都是能够实现文件共享的服务应用,其用法大致相同,但是挂载选项与配置文件的设置机制不同,下面介绍这两种文件共享服务的内容。     一.nfs服务的安装与配置     服务端主机的配置:   &…

    Linux干货 2016-10-23
  • 如何删除一个目录下的所有文件,但保留一个指定文件。附一些常用命令

    解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10   十个文件 方法如下: find /date -type f ! -name “file10″|xargs rm -f 另外还有其他的方法比如:rsync命令和bush的 extglob功能等。在此不一一列举。 附常用命令: 文件和目…

    2017-07-15
  • 马哥linux0803课堂笔记

    课堂笔记   重定向的几种方式 标准输入 0 (stdin) 标准输出 1 (stdout) 标准错误 2 (stderr)   标准输入的重定向方法 cat < file cat << string (多行重定向) xxx aaa string结束 cat file | cat   标准输出的重定向 ls e…

    Linux干货 2016-08-08