首頁技術(shù)文章正文

3分鐘了解什么是LAMP架構(gòu)?

更新時間:2019-10-29 來源:黑馬程序員 瀏覽量:

一、LAMP分別代表什么?

· L代表服務(wù)器操作系統(tǒng)使用Linux

· A代表網(wǎng)站服務(wù)使用的是Apache軟件基金會中的httpd的軟件

· M代表網(wǎng)站后臺使用的數(shù)據(jù)庫時MySQL數(shù)據(jù)庫

· P代表網(wǎng)站是使用PHP/Perl/Python等語言開發(fā)

二、Apache/MySQL/PHP各自有什么作用?

我們可以將LAMP架構(gòu)理解為飯店,家飯店很特別,前臺小姐姐灰常漂亮,服務(wù)生和廚師很丑,丑到不能見人的那種(自行腦補哈),所以你去飯店就只能看見前臺小姐姐。

 

1. 聊聊Apache(httpd)

· 像極了前臺

· 作用:提供web服務(wù),接受用戶的連接請求!

注意:Apache或Nginx都只支持靜態(tài)頁面的解析

1572315789595_LAMP架構(gòu)1.jpg


當(dāng)客戶端請求的是靜態(tài)資源時,web服務(wù)(httpd程序)會直接返回靜態(tài)資源給客戶端

(1)靜態(tài)網(wǎng)頁

· 靜態(tài)網(wǎng)頁指使用HTML(超文本標(biāo)記語言)編寫,一般后綴為.htm、.html等;網(wǎng)頁文件中沒有程序代碼

· 靜態(tài)網(wǎng)頁,用戶雙擊打開,看到的效果與web服務(wù)器是相同的,因為網(wǎng)頁的內(nèi)容在用戶訪問之前,就已經(jīng)確定

(2)動態(tài)網(wǎng)頁

· 動態(tài)網(wǎng)頁指網(wǎng)站使用特定的編程語言編寫,網(wǎng)頁文件中除了HTML標(biāo)記以外,還包括一些實現(xiàn)特定功能的程序代碼

· 服務(wù)器端可以根據(jù)客戶端的不同請求動態(tài)產(chǎn)生網(wǎng)頁內(nèi)容

· 動態(tài)網(wǎng)頁后綴一般為.php、.asp、.aspx、cgi、.perl、.jsp等

· 常見的留言板、論壇、注冊、發(fā)帖都是用動態(tài)網(wǎng)頁實現(xiàn)的

(3)小結(jié)

1)什么是web服務(wù)?

答:提供網(wǎng)頁瀏覽功能的網(wǎng)站服務(wù)。

即安裝了web服務(wù)軟件如,httpd/nginx等軟件,并啟動??蛻敉ㄟ^瀏覽器可以訪問網(wǎng)站。

2)什么是Web服務(wù)器?

答:簡單來理解就是安裝web服務(wù)軟件,并能提供Web服務(wù)的機器。

3)Web一般是分為客戶端與服務(wù)器端,兩者是如何交互的呢?

答:通過HTTP協(xié)議http://m.pantone-color.com.cn。

4)Apache(httpd)的作用和特點?

答:Apache用于接受用戶連接請求;只負(fù)責(zé)靜態(tài)頁面的解析。

2. 聊聊PHP

· 像極了服務(wù)生

· 作用:PHP主要負(fù)責(zé)PHP腳本程序的解析以及實現(xiàn)與MySQL數(shù)據(jù)庫的交互工作,我們項目中的注冊/登錄/下單/支付等大多數(shù)功能都是基于PHP+MySQL進(jìn)行實現(xiàn)。PHP是一種通用開源腳本語言。

1572315815806_LAMP架構(gòu)2.jpg


(1)當(dāng)客戶端請求的是動態(tài)資源時,Apache(httpd程序)會調(diào)用libphpX.so模塊進(jìn)行相應(yīng)的解析。

(2)如果解析處理需要用到后臺數(shù)據(jù)庫相關(guān)數(shù)據(jù),此時php程序也會連接后臺數(shù)據(jù)庫。

(3) 最終php程序?qū)⒔馕龊蟮慕Y(jié)果返回給Apache(httpd程序),讓Apache返回給客戶端。

3. 聊聊MySQL

· 像極了大廚

· 作用:MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle旗下產(chǎn)品。其主要作用用于永久的存儲數(shù)據(jù)。

1572315839073_LAMP架構(gòu)3.jpg


三、LAMP架構(gòu)是什么?

· 像極了飯店

1572315861192_LAMP架構(gòu)4.jpg


(1) Apache像極了飯店前臺,專門用來接受客戶請求,并做一些靜態(tài)頁面處理(只買酒水飲料)。

(2) PHP像極了服務(wù)生,他專門用來解析處理由前臺不能處理的”訂單”,如用戶想吃一碗意大利面,服務(wù)生就需要和后廚溝通,并做相應(yīng)的安排處理.然后將處理后的結(jié)果返回給前臺,由前臺再給用戶,因為服務(wù)生太丑了,見不得人。

(3) MySQL像極了后廚,專門用來存放食材,并且只能由中間的服務(wù)生和后廚溝通,來獲取什么食材。

· 專業(yè)解釋如下

(1) 客戶端發(fā)送請求連接web服務(wù)器的80端口,由Apache相應(yīng)并處理用戶的靜態(tài)請求。

(2) 如果客戶端請求的是動態(tài)資源,由Apache加載調(diào)用libphpX.so模塊(安裝php程序帶來)進(jìn)行解析處理。

(3) 如果處理需要和后臺數(shù)據(jù)庫溝通,那么由php程序去完成。

(4) Php程序?qū)⑻幚硗旰蟮慕Y(jié)果再返回給Apache,由Apache返回給客戶端。

本文來自:黑馬程序員 linux云計算+運維開發(fā)學(xué)院 linux.itheima.com。

分享到:
在線咨詢 我要報名
和我們在線交談!