LAMP 堆疊

menu icon

LAMP 堆疊

瞭解為何現今一些最熱門的開放原始碼 Web 應用程式都是在 LAMP 上執行,這是一種通過時間考驗的 Linux、Apache、MySQL 與 PHP 堆疊。

何謂 LAMP 堆疊?

  • 進一步瞭解通過時間考驗且在開放原始碼社群中廣為使用的堆疊
  • 採用動態語言的程式,您可以快速進入並查看結果
  • 在可自訂的模組上進行建置,以您自己的方式建立與部署 Web 應用程式
  • 為您的履歷增添寶貴的新知識和新技能

您可能聽說過關於 LAMP 堆疊的一些情況。 這不奇怪,因為當今最熱門的開放原始碼 Web 應用程式,例如 WordPress 和 Drupal,都在 LAMP 上執行。

但 LAMP 還有更多值得稱讚的地方。 它是 Web 最早的開放原始碼軟體堆疊之一,而且始終是提供 Web 應用程式的最常見方式之一。 它受到廣泛使用,以致於每當更新或代管現有應用程式時就有機會碰到。 此外,許多人會考慮選擇使用它來開發新的自訂 Web 應用程式。

穩定、簡單、強大是最常用來描述 LAMP 的詞彙。 所有的一切促成學習的價值,並為開發人員的簡歷錦上添花。

元件

LAMP 代表 Linux、Apache、MySQL 及 PHP 的縮寫。 它們共同創造出一套經過驗證的軟體,其專門用來提供高效能的 Web 應用程式。 每一個元件都為此堆疊提供重要功能:

  • Linux:作業系統。Linux 是一種免費的開放原始碼作業系統 (OS) ,而且早在 1990 年代中期開始就一直在使用。如今,它的使用者族群不僅遍佈全球還橫跨各行各業。 Linux 之所以流行,部分原因是它比其他一些作業系統提供更多的靈活彈性和配置選項。
  • Apache:Web 伺服器。Apache Web 伺服器可處理要求並透過 HTTP 提供 Web 資產,藉此任何人都可以在公開網域中透過簡單的 Web URL 來存取應用程式。 Apache 是由開放社群所開發與維護,它是一種成熟且功能豐富的伺服器,目前在網際網路上擁有龐大的網站市佔率。
  • MySQL:資料庫。MySQL 是一種用來儲存應用程式資料的開放原始碼關聯式資料庫管理系統。 有了 My SQL,您即可使用可透過 SQL 語言輕鬆進行查詢的格式來儲存所有資訊。 如果您需要處理結構良好的商業網域,而且想要將該結構轉換為後端系統,則 SQL 是很棒的選擇。 MySQL 適合用於執行大型且複雜的網站。請參閱「SQL 與 NoSQL 資料庫比較:有什麼不同?」,以取得關於 SQL 和 NoSQL 資料庫的詳細資訊。
  • PHP:程式語言。PHP 開放原始碼 Scripting 語言與 Apache 合作,以協助您建立動態網頁。 您無法使用 HTML 來執行動態程序,例如將資料拉出資料庫。 如果要提供這類功能,您只需將 PHP 程式碼放入您希望成為動態的頁面當中。

PHP 是專為提供效率而設計的。 它可讓您撰寫新的程式碼、點擊重新整理,並且在無需編譯的情況下立即查看所產生的變更,藉此讓程式設計變得更簡單同時也更好玩。 如果您喜歡的話,可以將 PHP 換成偏好的 Perl 或越來越受歡迎的 Python 語言。

 

LAMP 架構圖

LAMP 架構

LAMP 擁有典型的分層式架構,其中以 Linux 為最低層。 下一層是 Apache 和 MySQL,接著是 PHP。 雖然 PHP 在名義上是最頂層或呈現層,但 PHP 元件則位於 Apache 內部。

元件之間如何一起運作

LAMP 堆疊執行順序概觀顯示元件的交互作業方式。 當 Apache Web 伺服器從使用者的瀏覽器收到 Web 頁面要求時,便會啟動此程序。 如果要求的對象是 PHP 檔案,則 Apache 會將要求傳遞至 PHP,由其載入檔案並執行檔案當中包含的程式碼。 PHP 還會與 MySQL 進行通訊,以提取程式碼中所參照的任何資料。

然後 PHP 會使用檔案中的程式碼和資料庫中的資料,以建立瀏覽器顯示網頁所需的 HTML。 LAMP 堆疊不但可以有效率地處理靜態網頁,同樣也可以有效率地處理動態頁面,其中每次載入的內容可能會視日期、時間、使用者身分和其他因素而變更。

PHP 在執行檔案程式碼之後,接著會將所產生的資料傳回 Apache Web 伺服器,以便傳送至瀏覽器。 它也可以將此新資料儲存在 MySQL 中。 而理所當然地,這所有作業都是由在堆疊基礎上執行的 Linux 作業系統所推動。

靈活彈性

雖然 LAMP 使用 Linux 做為 OS,但您可以使用其他元件搭配替代 OS 來滿足您的特定需求。 例如,WAMP 堆疊就使用 Microsoft Windows;MAMP 搭配 Mac OS;WIMP 甚至使用 Windows 搭配來自 Microsoft 的 Internet Information Services Web 伺服器。

LAMP 是純開放原始碼且非專有,因此您可以避免鎖定。 您可以針對特定專案或商業需求彈性選擇適當元件。

LAMP 在其他方面同樣也提供靈活彈性。 Apache 採用模組化設計,您會發現有許多的現有可自訂模組可用來提供許多不同的延伸。 這些模組的涵蓋範圍從支援其他語言到鑑別功能。

LAMP 的另一個優點是它的安全架構,以及已獲得企業實證的完善加密作法。

效率

LAMP 可協助您縮短開發時間。 LAMP 是一種已經使用超過十年的開放原始碼堆疊,因此如今已形成龐大的 LAMP 生態系統。 您可以用別人過去的成就做為建置基礎,然後創造出自己的作品。 在 Apache 模組中工作,您可以少走 80% 的路,只要自訂最後的 20%,這樣最後可以省下可觀的時間。

LAMP 堆疊與 IBM

技術可能會變複雜,結果遮掩軟體的基本運作。 LAMP 堆疊回到根本,讓您更接近網頁的提供技術,以及提供網頁的完成方式。 您也可以說,這是一種純粹的應用程式建立方式。 您擁有資料庫、Scripting 語言,以及一種提供給用戶端的方法 - 這就是 LAMP。

註冊並建立您的 IBM Cloud 帳戶。