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

相关推荐

  • 初识linux

    Linux 是什么?2014年之前我都没有听说过linux。 简单来说,Linux是一种操作系统,我们知道Windows吧,Linux也是一种操作系统。 特性: (1)字符界面(当然现在也有图形界面了) (2)一切皆文件 (3)许多小工具程序组合 Linux脱胎于Unix,Unix是由贝尔实验开发的。符合posix 标准,Unix系统上面的应用程序大部分可以…

    Linux干货 2016-06-01
  • ☞keepalived

    keepalived 高可用集群 VRRP协议 keepalived 安装keepalived 主要文件 配置文件说明 【一】测试keepalived基本功能 单主模型示例 双主模型示例 通知脚本示例 【二】单主模型高可用DR类型LVS集群 配置keepalived主机 Real Server配置 测试结果 【三】双主模型高可用DR类型LVS集群 配置kee…

    Linux干货 2016-11-01
  • N28-第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-30
  • 第五周 程序包管理

    1、简述tar命令的常见选项,并举例 tar——  文件压缩与解压     ★命令格式 tar [OPTION…] [FILE]…  创建归档(-c,-f 指定文件): tar -c -f /PATH/TO/SOMEFILE.tar  FILE… (后缀名固定以 .tar 结尾;) tar -cf /PATH/TO/SOM…

    2017-12-31
  • N22-第一周作业

    1、描述计算机的组成及其功能    组成:        硬件:            CPU:运算器、控制器、寄存器、缓存     &nb…

    Linux干货 2016-08-15
  • Linux发行版的基础目录名称、命名法则及功能规定

    Linux发行版的基础目录名称、命名法则及功能规定 / 主层次的根,也是整个文件系统层次结构的根目录  /bin 存放系统的命令。  /boot 存放系统的启动文件,及其内核。  /dev 系统设备文件主目录。  /etc 系统主要配置文件主目录。  /home 普通用户家目录。  /lib 系统库…

    Linux干货 2016-10-31