更新時(shí)間:2019-10-29 來源:黑馬程序員 瀏覽量:
一、LAMP分別代表什么?
· L代表服務(wù)器操作系統(tǒng)使用Linux
· A代表網(wǎng)站服務(wù)使用的是Apache軟件基金會(huì)中的httpd的軟件
· M代表網(wǎng)站后臺(tái)使用的數(shù)據(jù)庫時(shí)MySQL數(shù)據(jù)庫
· P代表網(wǎng)站是使用PHP/Perl/Python等語言開發(fā)
二、Apache/MySQL/PHP各自有什么作用?
我們可以將LAMP架構(gòu)理解為飯店,家飯店很特別,前臺(tái)小姐姐灰常漂亮,服務(wù)生和廚師很丑,丑到不能見人的那種(自行腦補(bǔ)哈),所以你去飯店就只能看見前臺(tái)小姐姐。
1. 聊聊Apache(httpd)
· 像極了前臺(tái)
· 作用:提供web服務(wù),接受用戶的連接請(qǐng)求!
注意:Apache或Nginx都只支持靜態(tài)頁面的解析
當(dāng)客戶端請(qǐng)求的是靜態(tài)資源時(shí),web服務(wù)(httpd程序)會(huì)直接返回靜態(tài)資源給客戶端
(1)靜態(tài)網(wǎng)頁
· 靜態(tài)網(wǎng)頁指使用HTML(超文本標(biāo)記語言)編寫,一般后綴為.htm、.html等;網(wǎng)頁文件中沒有程序代碼
· 靜態(tài)網(wǎng)頁,用戶雙擊打開,看到的效果與web服務(wù)器是相同的,因?yàn)榫W(wǎng)頁的內(nèi)容在用戶訪問之前,就已經(jīng)確定
(2)動(dòng)態(tài)網(wǎng)頁
· 動(dòng)態(tài)網(wǎng)頁指網(wǎng)站使用特定的編程語言編寫,網(wǎng)頁文件中除了HTML標(biāo)記以外,還包括一些實(shí)現(xiàn)特定功能的程序代碼
· 服務(wù)器端可以根據(jù)客戶端的不同請(qǐng)求動(dòng)態(tài)產(chǎn)生網(wǎng)頁內(nèi)容
· 動(dòng)態(tài)網(wǎng)頁后綴一般為.php、.asp、.aspx、cgi、.perl、.jsp等
· 常見的留言板、論壇、注冊、發(fā)帖都是用動(dòng)態(tài)網(wǎng)頁實(shí)現(xiàn)的
(3)小結(jié)
1)什么是web服務(wù)?
答:提供網(wǎng)頁瀏覽功能的網(wǎng)站服務(wù)。
即安裝了web服務(wù)軟件如,httpd/nginx等軟件,并啟動(dòng)??蛻敉ㄟ^瀏覽器可以訪問網(wǎng)站。
2)什么是Web服務(wù)器?
答:簡單來理解就是安裝web服務(wù)軟件,并能提供Web服務(wù)的機(jī)器。
3)Web一般是分為客戶端與服務(wù)器端,兩者是如何交互的呢?
答:通過HTTP協(xié)議http://ko1818.cn。
4)Apache(httpd)的作用和特點(diǎn)?
答:Apache用于接受用戶連接請(qǐng)求;只負(fù)責(zé)靜態(tài)頁面的解析。
2. 聊聊PHP
· 像極了服務(wù)生
· 作用:PHP主要負(fù)責(zé)PHP腳本程序的解析以及實(shí)現(xiàn)與MySQL數(shù)據(jù)庫的交互工作,我們項(xiàng)目中的注冊/登錄/下單/支付等大多數(shù)功能都是基于PHP+MySQL進(jìn)行實(shí)現(xiàn)。PHP是一種通用開源腳本語言。
(1)當(dāng)客戶端請(qǐng)求的是動(dòng)態(tài)資源時(shí),Apache(httpd程序)會(huì)調(diào)用libphpX.so模塊進(jìn)行相應(yīng)的解析。
(2)如果解析處理需要用到后臺(tái)數(shù)據(jù)庫相關(guān)數(shù)據(jù),此時(shí)php程序也會(huì)連接后臺(tái)數(shù)據(jù)庫。
(3) 最終php程序?qū)⒔馕龊蟮慕Y(jié)果返回給Apache(httpd程序),讓Apache返回給客戶端。
3. 聊聊MySQL
· 像極了大廚
· 作用:MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle旗下產(chǎn)品。其主要作用用于永久的存儲(chǔ)數(shù)據(jù)。
三、LAMP架構(gòu)是什么?
· 像極了飯店
(1) Apache像極了飯店前臺(tái),專門用來接受客戶請(qǐng)求,并做一些靜態(tài)頁面處理(只買酒水飲料)。
(2) PHP像極了服務(wù)生,他專門用來解析處理由前臺(tái)不能處理的”訂單”,如用戶想吃一碗意大利面,服務(wù)生就需要和后廚溝通,并做相應(yīng)的安排處理.然后將處理后的結(jié)果返回給前臺(tái),由前臺(tái)再給用戶,因?yàn)榉?wù)生太丑了,見不得人。
(3) MySQL像極了后廚,專門用來存放食材,并且只能由中間的服務(wù)生和后廚溝通,來獲取什么食材。
· 專業(yè)解釋如下
(1) 客戶端發(fā)送請(qǐng)求連接web服務(wù)器的80端口,由Apache相應(yīng)并處理用戶的靜態(tài)請(qǐng)求。
(2) 如果客戶端請(qǐng)求的是動(dòng)態(tài)資源,由Apache加載調(diào)用libphpX.so模塊(安裝php程序帶來)進(jìn)行解析處理。
(3) 如果處理需要和后臺(tái)數(shù)據(jù)庫溝通,那么由php程序去完成。
(4) Php程序?qū)⑻幚硗旰蟮慕Y(jié)果再返回給Apache,由Apache返回給客戶端。
本文來自:黑馬程序員 linux云計(jì)算+運(yùn)維開發(fā)學(xué)院 linux.itheima.com。