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

相关推荐

  • 【26期】Linux第四周学习小总结

        第四周了,转眼就学习有关Linux的知识一月了,从开始的懵懵懂懂,到现在的懵懵懂懂,不变的是无边无际的知识,改变的是一小片迷雾被我们渐渐拨开了一角,学习的枯燥和充实,陪我们走完这安稳的最后学习时光。     今天分享的是一些我们本周学习的变量方面的东西,那么,什么是变量呢?变量来源于数学,是计算机语言中能储存计…

    2017-08-05
  • Linux 用户、用户组及权限管理

    一、Linux用户及用户组的基本概念 用户:用户是实现能够将有限的资源在多个使用者之间进行分配;、 用户组:用户组是指多个用户的集合,方便对一类需要同样权限的用户授权 Linux是多用户、多任务的操作系统。     多用户指:多人同时使用系统资源;多任务:同时运行多个进程 二、用户及用户组类别 1、用户:名称解析库 /…

    Linux干货 2016-03-20
  • SElinux

    SElinux 1.介绍: SELinux: Secure Enhanced Linux,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中 …

    Linux干货 2016-09-21
  • btrfs文件系统——更加高级的文件系统

    Btrfs 文件系统: Btrfs ( B-tree ,Butter FS ,Better FS ) GPL ,Oracle公司在2007年研发,支持CoW(对文件快照),为了取代ext3,ext4,xfs 核心特点:          多物理卷支持:btrfs可由多个底层物理卷…

    Linux干货 2016-08-31
  • 用户与用户组

    用户与组常见命令与用法

    Linux干货 2017-11-18
  • Linux中的网络管理

    1. ifconfig命令的使用方法 ifconfig是一个比较老的命令了,以后可能会慢慢被ip命令替代。ifconfig命令可以用来配置网卡ip地址,配置网卡别名等信息。 ifconfig ifconfig 网络设备名:用来查看网卡的信息,如ip地址,子网掩码,MAC地址等信息 ifconfig eth0 add 172.16.0.35/16:配置eth0…

    2017-05-02