1. 程式人生 > >linux——lamp簡介,架構搭建,Linux+Apache+Mysql/MariaDB+Php

linux——lamp簡介,架構搭建,Linux+Apache+Mysql/MariaDB+Php

過程 輸出 pro comm php程序 切換 處理請求 web服務 選擇

1.lamp簡介


1.所謂lamp,其實就是由Linux+Apache+Mysql/MariaDB+Php/Python的一組動態網站或服務器的開源軟件,除Linux外其他各部件本身都是各自獨立的程序,但是因為經常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程序平臺。LAMP指的是Linux(操作系統)、Apache(HTTP服務器)、MySQL(也指MariaDB,數據庫軟件)和PHP(有時也是指Perl或Python)的第一個字母,一般用來建立web應用平臺。
2.web服務器工作流程在說lamp架構平臺的搭建前,我們先來了解下什麽是CGI,什麽是FastCGI,什麽是....web服務器的資源分為兩種,靜態資源和動態資源

  • 靜態資源就是指靜態內容,客戶端從服務器獲得的資源的表現形式與原文件相同。可以簡單的理解為就是直接存儲於文件系統的資源
  • 動態資源則通常是程序文件,需要在服務器執行之後,將執行的結果返回給客戶端

那麽web服務器如何執行程序並將結果返回給客戶端呢?下面通過一張圖來說明一下web服務器如何處
技術分享圖片
如圖所示:
階段1顯示的是httpd服務器(即apache)和php服務器通過FastCGI協議進行通信,且php為獨立的服務進程運行
階段2顯示的是php程序和mysql數據庫間通過mysql協議進行通信,php與mysql本沒有什麽聯系,但是由Php語言寫成的程序可以與mysql進行數據交互。同理perl和Python寫的程序也可以與mysql數據庫進行交互


2.1 cgi與fastcgi

上圖階段1中提到了FastCGl,下面我們來了解下CGI與FastCGI


CGI

CGI(Common Gateway Interface,通用網關接口),CGI是外部應用程序(CGI程序)與WEB服務器之間的接口標準,是在CGI程序與Web服務器之間傳遞信息的過程,CGI規範允許Web服務器執行外部程序,並將它們的輸出發送給Web瀏覽器,CGI將web的一組簡單的靜態超媒體文檔變成一個完整的新的交互式媒體。

FastCGI

FastCGI(Fast Common Gateway Interface)是CGI的改良版,CGI是通過啟用一個解釋器進程來處理每個請求,耗時且耗資源,而FastCGI則是通過master-worker形式來處理每個請求,即啟動一個master主進程,然後根據配置啟動幾個worker進程,當請求進來時,master會從worker進程中選擇一個去處理請求,這樣就避免了重復的生成和殺死進程帶來的頻繁Cpu上下文切換而導致耗時。

linux——lamp簡介,架構搭建,Linux+Apache+Mysql/MariaDB+Php