Lamp

伺服器端技術實際上是如何工作的?

  • January 23, 2015

我不斷聽到伺服器端流行的 LAMP 和 WAMP 配置,也知道 LAMP 代表 Linux、Apache、MySQL、PHP/Python/Perl/Ruby 等。

但我不知道所有這些如何與每個集成其他。

例如,如果我在家裡的 Windows 機器上安裝了 Xampp,並且它有一個 htdocs 文件夾來儲存我的網頁……當我查詢該頁面時,瀏覽器會顯示給我……

我需要知道什麼:

  • Apache 實際上只是為我的網頁提供一個硬碟驅動器嗎?
  • PHP/Python/Perl/Ruby 和 MySQL 在哪裡適合?
  • 就像 Xampp 在我的電腦上有 htdocs 一樣,Apache Web 伺服器上是否有類似的文件夾?

眼前一片混亂,誰能解釋一下?

這些都是非常普遍的問題。您可能應該在 Wikipedia 或其他網站上閱讀有關數據庫、Web 框架和 Web 伺服器的資訊。

但是,只是為了給你一個快速的綱要:

Web 伺服器是一個程序,它為通過全球資訊網訪問您的機器的人提供數據。世界上最流行的兩種 Web 伺服器是 Apache 和 Microsoft Internet Information Services (IIS)。

數據庫儲存數據,最常見的是以關係方式。您可以將這些數據用於 Web 內容,即它可以儲存部落格文章、使用者名和密碼,基本上任何東西。用於 Web 開發的最常見數據庫是 SQL 變體,最常見的是 MySQL 和 MS SQL Server。

PHP、Python、Ruby 和 Perl 是高級語言,曾經可能被稱為腳本語言(但現在已經變得更多了)。它們之間存在各種技術和哲學差異,但它們都用於相同的目的。在 Web 術語中,這些語言用於對動態 Web 內容進行程式。您的 Web 伺服器執行 PHP/Ruby/Perl/Python 程式碼,該程式碼與來自數據庫和/或 HTML 頁面的數據相結合,輸出由您的 Web 伺服器軟體提供服務並最終被使用者看到的 Web 內容。所有這些語言都有各種框架,可以使使用它們進行 Web 開發更容易(例如 Rails for Ruby)。

XAMPP 只是一個包含 apache Web 伺服器、mysql 數據庫軟體以及 PHP 和 Perl 安裝的預打包工具包。

服務頁面的基本流程如下:

  1. 遠端使用者請求http://www.yoursite.com/index.php
  2. 您的 Apache Web 伺服器軟體接收該請求並準備通過與該特定使用者的連接提供適當的資訊
  3. Apache 與 PHP 的集成在您的伺服器上啟動 PHP 解釋器並執行 index.php 中的 PHP 程式碼
  4. 該 PHP 程式碼可能反過來包含從 MySQL 數據庫獲取和/或設置數據以在網頁中使用或用於使用者或會話管理的請求。
  5. 您的 Web 伺服器向遠端使用者發送一個 HTML 文件,該文件通過上述 PHP 程式碼、數據庫資訊以及您網站上預先編寫的靜態 HTML 和 CSS 的組合組合在一起。

此外,要回答您關於 Apache 是否只是“您的網站的硬碟”的問題,事實並非如此。Apache 為您做的一些事情包括管理許多使用者到您的站點的連接、為動態網頁執行適當的解釋器、控制對各種頁面的訪問、將使用者重定向到各種內容等等。Web 伺服器軟體是各種語言、開發框架、加密系統、身份驗證和訪問控制以及其他技術相交以創建功能齊全的網站的中心點。

引用自:https://serverfault.com/questions/69696