PHP的運作方式

YOGO之前在知識+有回覆一篇文章「要使用PHP+cURL一定要安裝Apache+MySQL嗎?」,在 YOGO 繼續往下寫這篇文章之前,想先問一下各朋友幾個關於PHP的問題。

1.PHP 一定要搭 Apache 或 IIS 之類的 Web Server(網頁伺服器)才能有作用,不能單獨使用。
2.PHP 只能搭 MySql 使用,無法搭配其他資料庫使用。
3.PHP 只能用於網頁開發,無法開發 WINDOWS 的桌面應用程式。

以上3個問題不知道各位為朋友覺得那幾個是對的?又有那幾個是錯的呢?其實正確解答是以上3個問題都是錯的,因為:

1.PHP 可以不搭任何 Web Server(網頁伺服器)單獨使用。
2.PHP 不一定要搭配 MySql,也可以搭配其它的資料庫使用。
3.PHP 也可以開發 WINDOWS 的桌面應用程式。

以下我們一個一個來說明好了:

1.PHP 可以不搭任何 Web Server(網頁伺服器)單獨使用。

以 Apache 為例,Apache 是一個標準的 Web Server(網頁伺服器),它主要的功能是用來回應使用者所送出的網頁請求,也因為 Apache 是一個標準的 Web Server(網頁伺服器),所以它只有處理靜態網頁(HTML)的能力,並無法處理動態網頁如 PHP 的請求部份(未安裝PHP模組之前),為了讓 Apache 能處理如 PHP 那樣的動態網頁請求,所以會加裝 PHP 模組,好讓 Apache 識得 PHP ;那這樣說來是不是 Apache 加裝 PHP 模組,Apache 就有處理 PHP 的能力。

正確來說,應該是說 Apache 加裝 PHP 模組後,Apache 就會認得副檔名為 .php 的檔案,當遇到副檔名為 .php 的檔案時,Apache  就會呼叫 PHP 解析器來解析 PHP 文件,然後 Apache 再將 PHP 解析器解析後的結果傳送給使用者;也就是說 Apache 本身並不參與 PHP 程式碼的解析工作,Apache  只是單純呼叫 PHP 解析器來解析 PHP 的程式碼,然後輸出 PHP 解析器所回傳的資料給使用者,也就是說就算不裝 PHP 模組,Apache 還是可以活的很快樂,因為基本上它只是一個標準的Web Server(網頁伺服器),所以它只要能處理靜態網頁(HTML)就好了,其他的功能都是透過模組加裝上去的。

所以就算沒有 PHP 模組,Apache 一樣能運作,只是無法解析 PHP 檔案,遇到副檔名為 .php 的檔案,就會變成檔案下載;也就是對於 Apache 來說,PHP 模組並非必要的,沒有 PHP 模組,Apache 一樣可以活的很快樂。

那對 PHP  來説,若沒搭配如 Apache 或 IIS 之類的 Web Server(網頁伺服器)的話,那 PHP 還有辦法運作嗎?其實答案是肯定的;從 PHP 4.3.0 開始,PHP 提供了一種新類型的 SAPI(Server Application Programming Interface,服務端應用編程端口)支援,名為 CLI,意為 Command Line Interface,即命令行。顧名思義,該 SAPI 模組主要用作 PHP 的開發外殼應用。

有興趣的朋友可以參考一下下面那二篇文章:

1.PHP 的命令行模式介紹
2.CLI 模式:PHP 可以用來開發作業系統的 Shell Script (詳情可參考
PHP CLI ) 。

所以 PHP 並不一定要搭配如 Apache 或 IIS 之類的 Web Server(網頁伺服器),PHP 就算是單獨使用也可以活的很高興,所以二者之間並沒有絕對的相依性。

至於 PHP 命令列模式的應用方法,則不在此篇文章的討論範圍,有興趣的朋友可參考一下這本書「網路機器人、網路蜘蛛與網路爬蟲」,這本書可以說是將「PHP CLI」應用寫的最詳盡的一本書,有興趣的朋友可以參考看看。

2.PHP不一定要搭配 MySql,也可以搭配其它的資料庫使用。

不了解這部份的朋友應該比較少,因為大部份的朋友應該都知道, PHP 除了可搭配 MySql 之外,也可以搭配 SQL Server、ACCESS、PostgreSQL、Oracle ..等,眾多資料庫系統及所有支援 ODBC 技術的資料庫。

3.PHP 也可以開發WINDOWS 的桌面應用程式。

知道 PHP 可以開發 WINDOWS 應用程式的人應該比較不多,這部份屬於「PHP-GTK」應用的部份,而台灣在介紹這方面的書並不多,老實說 YOGO 也只看過二本書有寫過這方面的介紹而已,其中以「PHP之戀」這本書寫的最好也最詳盡,但可惜的是,這本書歷史有點久遠,早已絕版,這本書 YOGO 也有一本,但目前並不想割愛,現在想找這本書只能去二手書店、網拍或圖書館找找,碰碰運氣囉,不過這本書的作者之一「小企鵝」也有經營一個「TiM Club」網站,有興趣的朋友可以前去挖挖寶,相信一定會有很多意想不到的收獲。

而另外一本書就是「程式設計俱樂部 NO.6」,這本書的內容之一【PHP Tech】 PHP-GTK實作POP3郵件收件程式,介紹從下載、安裝、語法說明及從無到有實作一個POP3郵件收件程式,都有詳細的說明,可惜的是,這本書一樣歷史有點久遠,早已絕版,現在想找這本書只能去二手書店、網拍或圖書館找找,不過這本書 YOGO 也有一本,這本 YOGO 倒是可以割愛,若有興趣的朋友,就請到 YOGO 露天賣場下標囉。

歡迎參觀我的賣場

延伸閱讀:
PHP 開發迷思 (三) – PHP 很糟糕?

留言

這個網誌中的熱門文章

用PHP寄MAIL的方法

ImageMagick應用大全(一)

php安裝openssl的方法