淺談PHP內核與服務器

最近在學習php內核,看着看着就有了一些感想,於此記下

 

一.PHP與服務器

PHP運行模式,這個看字面就知道啥意思了,一共有多少種,說不準,因爲分類標準不一,在此,我說說一些大部分人同意的分類吧。有CLI模式,CGI模式,FAST-CGI模式,web模塊模式,ISAPI模式。想知道細節可以自行查找資料。以下只是大概的對比。

備註:在PHP5.3以後,PHP不再有ISAPI模式,安裝後也不再有php5isapi.dll這個文件。

 

以web模塊模式爲例對比其他模塊。

web模塊模式是將php作爲一個模塊,加載與web服務器上面,服務器負責進行多進程,php解釋器負責多線程,相較於CLI/CGI模式(FAST-CGI模式是CGI模式的升級版)的單進程,無疑是更加合理的,面對多個使用者,服務器很好的承擔起了很大一部分的網絡訪問壓力,而php解釋器只需要專心於應用單用戶的請求即可,這是隻有單線程的其他模式不可比擬的。且,作爲一個模塊,耦合性不高,也可以說成是高內聚底耦合,有了更大的可能性。

如:PHP不止可以運行在Apache服務器上,也可運行在IIS,Nginx,Lighttpd,Tomcat等等主流與非主流服務器上。

 

二.PHP擴展與Zend API

許多人使用php主要是他的易用與易學,然而大多數人並沒有意識到php這門語言爲什麼易用,其實他的容易主要源於他的多擴展。我們平常使用的array函數,mysql函數,等等等等,其實都是一個個的擴展,正是擁有了這麼多的擴展供我們使用,我們才能夠很快的學會如何使用他,說道這個,就不得不提Zend Engine了,大多數擴展都是基於這個引擎的API即Zend API而編寫的,這個引擎的其中一個作用是PHP的OO功能,他還有許多功能,也正是因爲如此,使得這其中的關係過於緊密,耦合性高,對於可擴展性不是那麼友好。





發佈了45 篇原創文章 · 獲贊 25 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章