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
下一篇 2015-06-15

相关推荐

  • systemd和systemctl

    systemd:      POTS–>boot Sequence(BIOS)–>Bootloader(MBR)–>kernel(ramdisk)–>rootfs(swithroot)–>/sbin/init    &n…

    Linux干货 2016-09-22
  • N25第七周博客作业

    第七周博客作业 1、 创建一个10G分区,并格式为ext4文件系统; fdisk/dev/sdb à nàpàlast扇区:+10Gàwàpartx -a /dev/sdb   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs  -t ext4 -b 2…

    Linux干货 2017-02-20
  • hadoop安全模式

    hadoop安全模式在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文…

    Linux干货 2015-04-13
  • vim、定时任务、脚本初步应用及详解

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;   ~]#cp  /etc/rc.d/rc.sysinit   /tmp   在末行模式下输入:%s@^[[:space:]]\+[^[:space:]]@#&@g     &:匹配模式找到的全部…

    2016-12-04
  • Linux简单命令

    cal 日历 bc  计算器     obase=2 输出为二进制       ibase=2输入为二进制      \onnn八进制      \xHH十六进制 $()识别命令和变量,同反向单引号 , 可在命令调用另一个命令的执行结果时用 字体颜色:红色-打包文件(压缩包),绿色-可执行,浅蓝-软连接,蓝色-目录 echo $SHELL查看当前shell …

    Linux干货 2018-03-18
  • 编译httpd2.4.10踩坑记

    作者【Jev Tse】【版权所有】  系统环境:centos6.8     【本文概览】     零、httpd2.4.10编译总结         1、基础环境         2、依赖包组   &…

    Linux干货 2016-11-29