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.www58058.com/4900

(0)
馬行空馬行空
上一篇 2015-06-15
下一篇 2015-06-15

相關推薦

  • Mariadb數據庫復制系列(五):基于SSL的復制

       實驗五:基于SSL的主從復制功能的實現 在mysql服務器之間復制數據,默認情況下都是基于明文的,在有些場景中,明文傳輸會造成嚴重的數據安全隱患,因此,需要對mysql服務器之間的復制時的傳輸進行加密,傳輸加密方式可以基于SSL的會話進行 1、實驗環境 2、私有CA的搭建 3、在主節點node72上生成證書簽署請求、發送到私有CA服務器 4、在從節點n…

    Linux干貨 2016-11-24
  • vim用法小結

    vim使用: 使用vi和vim的三種主要模式 : 命令模式,插入模式,擴展模式    擴展模式: w:寫入磁盤文件 wq:寫入并退出 x:寫入并退出 q:退出 q!不存盤退出,即使更改都將丟失 r filename:讀文件內容到當前文件中 w filenane: 將當前文件內容寫入到另一個…

    Linux干貨 2016-08-12
  • MHA

    1.關于MHA MHA是一款開源的mysql的高可用程序,它為mysql主從復制架構提供了automating master failover功能。MHA在監控到master節點故障時,會提升其中擁有最新數據的slave節點成為新的master節點,在此期間,MHA會通過與其他從節點獲取額外的信息來避免不一致性的問題。MHA還提供了master節點的在線切換…

    2016-11-26
  • Linux進程和計劃任務

                                                      &nbsp…

    系統運維 2016-09-21
  • 簡單描述LVS工作原理-第1部分

    一、NAT模式(VS-NAT) 原理:就是把客戶端發來的數據包的IP頭的目的地址,在負載均衡器上換成其中一臺RS的IP地址,并發至此RS來處理,RS處理完成后把數據交給經過負載均衡器,負載均衡器再把數據包的原IP地址改為自己的IP,將目的地址改為客戶端IP地址即可?期間,無論是進來的流量,還是出去的流量,都必須經過負載均衡器? 優點:集群中的物理服務器可以使…

    Linux干貨 2016-08-15
  • 馬哥教育網絡班22期中秋節課程練習1

    #!/bin/sh   set -e CheckRoot() { #check if currect use is root user     CUR_USER=`whoami`     if&nbs…

    Linux干貨 2016-10-09
欧美性久久久久