跳至

什麼是 LAMP 堆疊?

LAMP 堆疊是指一組免費的開放原始碼元件,可互相搭配運作,協助開發人員建構、部署及管理動態網頁應用程式。

引言

Michael Kunze 在 1998 年首次將 LAMP 一詞定義為一套免費的開放原始碼元件,搭配使用可協助開發人員建構、部署及管理動態網路應用程式。由於集合元件或層可共同構成完整的功能環境,因此稱為「堆疊」。

堆疊的每個元件或層都是免費的開放原始碼,因此人人都能使用。元件名稱的第一個字母組成 LAMP 縮寫:

  • Linux - 作業系統
  • Apache - 網路伺服器
  • MySQL - 資料庫伺服器
  • PHP、Perl 和 Python - 程式設計語言

架構

我們將說明各個層如何搭配運作,以便提供完整的解決方案來交付網路應用程式。下圖說明所有不同元件如何搭配運作,以建立堆疊。

LAMP 堆疊架構提供網路伺服器、MySQL 資料庫伺服器、Linux 作業系統和程式設計語言

作業系統

Linux 是 LAMP 堆疊的作業系統 (OS) 和基礎。Linux 於 1991 年推出,是一款免費的開放原始碼作業系統,廣受全球使用者喜愛。它是開放原始碼、有彈性且可自訂,可讓機構根據自身需求修改原始碼。另外三個 LAMP 堆疊元件則立於 Linux OS 之上。

網路伺服器

Apache HTTP Server 是一款網路伺服器,可透過網際網路提供網頁內容。Apache 於 1995 年推出,成為全球最熱門的網路伺服器之一。Apache 是 LAMP 堆疊中的第二個層,透過網際網路處理用戶端要求。使用超文本傳輸通訊協定 (HTTP) 可接受傳入的 HTTP 要求,然後提供相關的網頁內容。由於 Apache 是開放原始碼,因此這個強大的生態系統建立了許多模組,可擴充 Apache 的功能。這些模組包含驗證、加密、診斷、記錄等。

資料庫

MySQL 是一個開放原始碼關聯資料庫,用於儲存應用程式資料。MySQL 於 1996 年推出,現在是位居全球第二的熱門資料庫 (根據 DB-Engines 研究)。LAMP 堆疊會使用 MySQL 儲存、管理及查詢資料庫中的資訊。資訊包括使用者帳戶、使用者詳細資料、產品名稱、客戶記錄、銷售、應用程式等。使用者可使用結構化查詢語言 (SQL),輕鬆存取及操控儲存在資料庫中的資訊。

程式設計語言

LAMP 中的「P」原本是指 1995 年推出的程式設計語言 PHP,可用來建立動態網頁。隨著時間過去,「P」也涵蓋 PythonPerl 等在網站開發方面越來越受歡迎的非 PHP 語言。

目前,網站需要動態功能才能顯示即時或更新的資訊。由於 HTML 無法執行動態處理程序,因此您可以將 PHP、Perl 或 Python 程式碼嵌入需要此功能的網站部分。HTML 可用於網站版面配置,PHP、Perl 或 Python 則可用來取得即時資訊,例如檢查電子商務網站上的最新庫存。

運作方式

下面是簡化的工作流程,說明使用者在執行 LAMP 堆疊的動態網站上搜尋「棒球比數」的程序。每個層都是在 Linux 上執行,做為堆疊的基礎元素。

在動態網站上搜尋資訊時的查詢工作流程

使用 LAMP 堆疊的好處

開發人員選擇 LAMP 堆疊來建構網路應用程式的常見原因包括:

費用

LAMP 使用量的主要驅動因素之一,在於它是免費的開放原始碼。也就是說,開發人員無須支付專屬軟體授權費,即可開始使用。這樣可大幅降低前測、建構、部署及管理網路應用程式的成本。

效率

由於 LAMP 堆疊的元件已成立將近 30 年,因此 LAMP 提供了經過嘗試與測試的網站開發解決方案。開發人員可以善用現有最佳做法、程式碼和工具,省時又省力。

彈性

由於 LAMP 為開放原始碼,可讓您根據自身需求和業務要求,靈活選擇合適的元件。LAMP 生態系統提供強大的建構模塊,例如程式碼範例、模組和擴充功能,可讓您依據自身需求加以自訂和混合。

Community

由於 LAMP 大受歡迎,由經驗豐富的專家所組成的廣大全球社群所提供的協助和支援,可讓您在專案的各個階段受益匪淺。這個強大而活躍的社群能夠讓更多人分享最佳做法、工具、資源,以及更快、一致的發布週期。

找到所需的解決方案了嗎?讓我們攜手解決您面臨的難題。

MySQL 適用的 Cloud SQL:Google Cloud 提供的 MySQL 全代管服務
瞭解 Cloud SQL
透過我們的 Marketplace,在 Google Cloud 中部署 LAMP 堆疊元件
造訪 Marketplace

Google Cloud 提供 LAMP 堆疊的所有層,讓您建構下一個網路應用程式。您可以使用 Google Cloud Marketplace 或個別元件 (例如我們全代管的資料庫服務,MySQL 適用的 Cloud SQL) 開始部署完整的 LAMP 堆疊。