什麼是 LAMP 堆疊?
LAMP 堆疊是開發人員用於建置網站和 Web 應用程式的四種不同軟體技術的組合。LAMP 是作業系統 Linux、Web 伺服器 Apache、資料庫伺服器 MySQL 和程式設計語言 PHP 的首字母縮略字。所有這四種技術都為開放原始碼,這意味著它們由社群維護,任何人都可以免費使用。開發人員使用 LAMP 堆疊來建立、託管和維護 Web 內容。這是一種常用的解決方案,可為您今天常用的許多網站提供支援。
為什麼 LAMP 堆疊很重要?
Web 開發人員選擇 LAMP 堆疊來建置 Web 應用程式的原因如下。
成本
所有 LAMP 技術都為開放原始碼,這意味著任何開發人員或公司都可以使用這些技術,而無需支付授權費用。您可以免費下載作業系統、Web 伺服器、資料庫和指令碼語言,而不是購買專有堆疊元件。這可降低建置 Web 應用程式的成本。
效率
設定新的 Web 開發堆疊需要嚴格測試不同的架構、模組、程式庫和工具。另一方面,LAMP 堆疊是經過驗證的 Web 開發解決方案。Web 開發人員可優先考慮和加速應用程式開發,以專注於他們正在建置的內容,而不是如何建置。
Maintenance (維護)
世界各地的軟體專家透過變更、評論和審查公開的原始程式碼,來為 LAMP 堆疊技術的開發做出貢獻。他們會定期維護和更新技術,以保持相關性和安全性。
支援
LAMP 堆疊等熱門開放原始碼技術,得到龐大的全球 IT 社群的支援。因此,LAMP 堆疊使用者可以更輕鬆地在公共 IT 論壇上找到資訊。Web 開發人員可以參考範例程式碼,或使用由開放原始碼社群建立的經過測試的外掛程式。
靈活性
LAMP 堆疊為 Web 開發人員提供了可靠性和靈活性。雖然 LAMP 架構會為每一層指定軟體元件,但開發人員可依照自己認為合適的方式來取代。例如,他們可以使用 Linux 以外的其他作業系統作為堆疊基礎。
LAMP 堆疊有哪些用途?
LAMP 堆疊用於後端或伺服器端開發。後端應用程式是在一般使用者隱藏的環境中執行的軟體。後端應用程式包含下列內容:
- 資料處理軟體
- 資料庫元件
- 程式碼中的業務邏輯
- 與其他應用程式通訊的 API
在瀏覽器上顯示的網頁稱為前端應用程式。當您與頁面互動 (例如按一下按鈕) 時,您的瀏覽器會與後端應用程式通訊,以擷取所需的資訊。
開發人員使用 LAMP 堆疊來建立靜態和動態 Web 內容。
靜態網頁
Web 伺服器的靜態網頁資訊對於所有使用者都是相同的。例如,公司網站上的地址是靜態內容。Web 開發人員使用 HTML 和 CSS 程式設計語言建立靜態網頁,並將其作為檔案存放在 Web 伺服器應用程式中。
動態網頁
動態網頁包含根據瀏覽網頁或 Web 應用程式的使用者而變更的資訊。例如,根據您的位置而變更的網站訊息即動態內容。Web 伺服器透過處理業務邏輯或從資料庫中擷取資料,來提供動態網站。
什麼是 LAMP 架構?
軟體堆疊是一組用於建置、管理和執行應用程式的分層工具、程式庫、程式設計語言和技術。堆疊包含以不同方式支援應用程式的軟體元件,如視覺呈現、資料庫、聯網和安全。
同樣,LAMP 架構包含四種軟體技術,這些技術在後台共同協作,以建立可執行的 Web 應用程式。它描述這些 Web 開發技術如何在電腦伺服器中相互互動。LAMP 架構由以下幾層組成。
Linux
Linux 是一個開放原始碼作業系統,您可以安裝並設定該作業系統,以滿足不同的應用程式要求。Linux 位於 LAMP 堆疊的第一層,並支援上層上的其他元件。
Apache
Apache 是一個開放原始碼 Web 伺服器,構成 LAMP 堆疊的第二層。Apache 模組可存放網站檔案,並透過使用 HTTP 的瀏覽器交換資訊,這是純文字傳輸網站資訊的網際網路協定。例如,當瀏覽器請求網頁時,Apache HTTP 伺服器會執行下列操作:
- 接收請求
- 處理請求並尋找所需的頁面檔案
- 將相關資訊傳送回瀏覽器
MySQL
MySQL 是開放原始碼關聯式資料庫管理系統,這是 LAMP 堆疊的第三層。LAMP 模組使用 MySQL 來存放、管理和查詢關聯式資料庫中的資訊。例如,開發人員會存放應用程式資料,如客戶記錄、銷售和庫存。當使用者搜尋資訊時,Web 伺服器會查詢在 MySQL 中存放的資料。查詢是指使用 SQL 語言操縱關聯式資料庫中資料的特殊指令。
PHP
PHP 表示 PHP:超文字預處理器,是 LAMP 堆疊的第四層也是最後一層。它是一種指令碼語言,可讓網站執行動態程序。動態程序涉及不斷變化的軟體資訊。Web 開發人員將 PHP 程式設計語言內嵌於 HTML 中,以在網站上顯示即時或更新的資訊。他們使用 PHP 來允許 Web 伺服器、資料庫和作業系統,以便有凝聚力地處理瀏覽器的請求。
HTML 與 PHP 比較
Web 開發人員使用 HTML 進行前端開發,如設計網頁的版面配置。同時,他們使用 PHP 來判斷使用者載入網頁時某些元件的行為。例如,Web 開發人員使用 HTML,設計線上產品型錄的圖形版面配置。然後,他們使用 PHP 程式碼,從後端伺服器擷取最新的產品價格。
LAMP 堆疊如何運作?
Web 應用程式會使用 LAMP 堆疊,來回應 Web 瀏覽器的請求。Apache Web 伺服器和 MySQL 資料庫在 Linux 作業系統上執行,並使用 PHP 進行通訊。 當您在瀏覽器中開啟網頁時,LAMP 堆疊將執行以下程序。
接收請求
Apache Web 伺服器會從瀏覽器接收傳入的請求。如果請求載入靜態檔案,Apache 伺服器會直接回應適當的內容。如果請求是針對動態內容,Apache 伺服器會將請求傳遞給 PHP 元件。PHP 元件會尋找並載入可處理請求的相應 PHP 檔案。
處理請求
PHP 檔案包含 PHP 函數,這是用於產生動態內容的程式碼。PHP 元件可處理 PHP 函數,如轉換測量單位或建立銷售圖表。某些 PHP 函數可能需要來自資料庫的資訊。在這種情況下,PHP 程式碼會從資料庫中擷取存放的資訊,並將其用於處理該函數。
傳回回應
PHP 將運算結果以 HTML 格式傳遞至 Web 伺服器。同時,還會將新資料存放在 MySQL 資料庫中。Apache HTTP 伺服器會將動態 HTML 結果傳送至使用者的瀏覽器。
什麼是 LAMP 替代方案?
LAMP 替代方案或 LAMP 變體是後端開發技術,使用與 LAMP 架構中指定元件不同的元件。例如,Web 開發人員可能會使用其他 Web 伺服器,而不是 Apache 來接收和處理前端應用程式的請求。某些 LAMP 替代方案可能會使用專有元件,如授權的作業系統。
替代指令碼語言
雖然 PHP 是 LAMP 堆疊的預設指令碼語言,但開發人員可用 Perl 或 Python 來取代。
Perl
Perl 是一種已經存在 30 多年的程式設計語言。開發人員使用 Perl 進行 Web 開發,因為它能與資料庫整合很好地配合,並具有可協助開發的架構。架構是各種軟體工具,包含經過良好測試的元件,這些元件可加速應用程式開發。
Python
Python 是一種用於建置不同類型軟體 (包括 Web 應用程式) 的高階程式設計語言。開發人員在 Web 開發中使用 Python,因為這種語言簡單易懂。
什麼是 MEAN 堆疊?
MEAN 是 MongoDB、Express.js、Angular.js 和 Node.js 的首字母縮略字。它是 LAMP 的替代方案,並在 JavaScript 技術的基礎上建置。JavaScript 是一種用於後端和前端開發的程式設計語言。以下是 MEAN 堆疊元件的角色:
- MongoDB,這是一種與 JSON 配合良好的資料庫,JSON 是一種可讀取資料的 JavaScript。
- Express.js,這是一個架構,提供用於建置後端應用程式的開放原始碼工具。
- Node.js,這是是一個執行 JavaScript 應用程式的平台。
- Angular.js,這是用於開發前端應用程式的開放原始碼架構。
MEAN 堆疊與 LAMP 堆疊的比較
MEAN 堆疊和 LAMP 堆疊是適用於不同類型 Web 應用程式的出色開放原始碼軟體堆疊。MEAN 堆疊適用於涉及在前端進行大量邏輯處理的 Web 應用程式。同時,LAMP 堆疊非常適合處理繁忙流量的大型複雜網站。例如,開發人員使用 MEAN 堆疊來建置視訊串流 Web 應用程式,但會針對電子商務 Web 應用程式選擇 LAMP 堆疊。
AWS 如何支援 LAMP 堆疊開發?
您可以使用 Amazon Lightsail,在 AWS 上開發、部署和管理 LAMP 堆疊應用程式。使用 Lightsail,您可以執行下列操作:
- 顯著加速部署 LAMP 堆疊應用程式。
- 將您的專案與 90 多種 AWS 服務整合。
- 透過升級並遷移至 Amazon Elastic Container Service (Amazon ECS) 來擴展 Lightsail 專案。
立即建立免費的 AWS 帳戶,開始使用 AWS 上的 LAMP 堆疊。