apache學習筆記

  • httpd -k restart -n apache24  [注意在wamp下名字叫wampapache] 

http://blog.sina.com.cn/s/blog_692a024c0102vuq1.html 【PHP線程安全(TS)與非線程安全(NTS)、Apache版本選擇,及詳解五種運行模式】php

關於從何處下載Apache:

要安裝Apache,你可能想固然地會去Apache官方網站下載適用於Windows的二進制版本。而這偏偏錯了!

PHP官方不建議在Windows下安裝從apache.org網站下載的Apache二進制安裝包。緣由是若是你使用來自apache.org的安裝包,則因爲這些安裝包是基於陳舊的Visual Studio 6編譯的,致使你不得沒必要須使用一樣陳舊的PHP版本(即VC6的PHP版本。也即便用Visual Studio 6編譯的PHP版本)才能與其配合使用。

要想使用最新版的PHP,應遵從PHP的官方建議。PHP官方的建議是你在Windows下可使用IIS,或者使用來自Apache Lounge(www.apachelounge.com)的Apache版本。

Apache Lounge所提供的Apache二進制安裝包是使用VC11創建的。所以可搭配最新版本的PHP使用。

網上不少資料說若是你是在Windows下使用 Apache,則必須使用PHP的VC6版本,只有使用IIS時才能使用VC9及以上版本,徹底是沒有搞清狀況的以訛傳訛。 

如何選擇PHP版本(選擇線程安全仍是非線程安全):

在Windows下安裝PHP,在選擇PHP版本上頗有講究。

Windows下的PHP版本分兩種:線程安全版本與非線程安全版本。

若是你打算使用IIS,則你能夠以ISAPI或FastCGI這兩種方式來安裝PHP。CGI的方式由於效率低下,故不予考慮。

若是你要在IIS中以FastCGI方式使用PHP,則你應該使用PHP的非線程安全的版本(Non-Thread Safe,NTS)。緣由是以FastCGI方式安裝PHP時,PHP擁有獨立的進程,而且FastCGI是單一線程的,不存在多個線程之間可能引起的相互干擾(這種干擾一般都是因爲全局變量和靜態變量致使的)。因爲省去了線程安全的檢查,所以使用FastCGI方式比ISAPI方式的效率更高一些。

若是你要在IIS中以ISAPI的方式使用PHP,則你應該使用PHP的線程安全版本(Thread Safe,TS)。緣由是PHP以ISAPI方式安裝時,PHP沒有獨立的進程,而是做爲DLL被IIS加載運行的,便是依附於Web服務器進程的。當Web服務器運行在多線程模式下(IIS正是這種狀況),PHP天然也就運行在多線程模式下。只要是在多線程模式下運行,就可能存在線程安全問題,所以應選擇PHP的線程安全版本。

但在這裏還有必要說明一下,儘管Apache自己是線程安全的,同時你也選擇了PHP的線程安全版本,但因爲一些Apache和PHP下的第三方擴展最初是基於Unix的多進程思想開發出來的,在設計開發時沒有考慮線程安全的問題,所以,不排除在這種狀況下仍然存在IIS被某些第三方擴展搞崩潰的可能。

若是你打算使用Apache,則你能夠以模塊、ISAPI、FastCGI這三種方式來安裝PHP。CGI的方式由於效率低下,故不予考慮。

若是你要在Apache中以模塊方式安裝PHP,則你應該使用PHP的線程安全的版本。緣由是當PHP做爲Apache的模塊安裝時,PHP沒有獨立的進程,而是做爲模塊以DLL的形式被加載到Apache中的,是隨Apache的啓動而啓動的,而Windows下的Apache爲多線程工做模式,所以PHP天然也就運行在多線程模式下。所以,這種狀況下應使用PHP的線程安全版本。

再來看ISAPI的狀況。一般認爲ISAPI是配合IIS使用的,由於ISAPI最初就是微軟爲IIS開發的。但Apache如今也能夠經過加載mod_isapi.so模塊來實現ISAPI的功能,以容許PHP以ISAPI的方式安裝。.so文件是Apache自1.3版本後製定的用於Windows下的模塊命名規則,對於Windows下的Apache而言,.so與.dll文件同樣,都是動態連接庫文件。

當要以ISAPI方式來安裝PHP時,一般是加載一個名如phpXisapi.dll的DLL文件,其中的X爲阿拉伯數字四、5等等這樣子。

但通常不建議在Apache中以ISAPI方式來安裝PHP,緣由是到目前爲止,Apache經過mod_isapi.so模塊來實現的ISAPI功能並不完整,並未完整實現微軟對ISAPI所制定的所有規範。

一樣的,因爲以ISAPI方式來安裝PHP時,PHP也沒有獨立的進程,也是做爲模塊被加載到Apache中的,所以,一樣也須要使用PHP的線程安全版本。

若是你要在Apache中以FastCGI方式使用PHP,則同在IIS中使用FastCGI的PHP的狀況同樣,你應該使用PHP的非線程安全的版本。緣由是在Apache中以FastCGI方式安裝PHP時,PHP擁有獨立的進程,而且FastCGI是單一線程的,故應使用PHP的非線程安全版本以提升性能。
View Code

http://blog.csdn.net/hxsstar/article/details/18809771   【apache php的幾種運行方式(cgi,fastcgi...)】html

相關文章
相關標籤/搜索