以windows爲例,看看下載到得php zip的文件名php
php-5.4.4-nts-Win32-VC9-x86.ziphtml
VC6:legacy Visual Studio 6 compiler,是使用這個編譯器編譯的。
VC9:Visual Studio 2008 compiler,就是這個編譯器編譯的。web
這個其實沒有什麼太大的影響,由於從php 5.3,已經沒有vc6版本提供下載了
apache
IISwindows
若是想使用IIS配置PHP的話,那麼須要選擇Non-Thread Safe(NTS)版本的PHP安全
Apacheapp
若是你是用的Apache的版原本自Apache Lounge(website:http://apachelounge.com/),可使用PHP VC11 x86或者x64版本。編輯器
若是你使用的是從apache.org下載的Apache1或者Apache2來搭建PHP環境的話,只能使用VC6版本,沒法使用VC9+以上版本。ide
VC9 和VC11php-fpm
VC9和VC11是PHP的最新版本(這兩個版本分別經過Visual Studio 2008和Visual Studio 2012編譯),其中包含了對於性能和穩定性的改進。
VC9版本要求用戶安裝Microsoft Visual C++ 2008 SP1 Redistributable Package(x86 | x64)
VC11版本要求用戶安裝Visual C++ Redistributable for Visual Studio 2012(x86 | x64)
TS:Thread Safe 線程安全, 執行時會進行線程(Thread)安全檢查
NTS:Non Thread Safe 非線程安全, 在執行時不進行線程(Thread)安全檢查
我使用Apache+PHP的模式下,通常是把PHP做爲一個Module load到apache中,那麼以apache父進程-多子進程的工做模式,是須要進行線程安全檢查的,因此若是是以這種方式執行php,選擇ts版本
那麼若是是使用fastcgi,好比說用php-fpm管理php執行,則不須要進行線程安全檢查,則選擇nts版本的php
---------------------------------------------------------------------------------------------------------------------------
php 5.5.0 beta 1發佈後, 安裝出現問題, 家中電腦升級是成功的, 可公司的電腦一直提示沒法加載到服務. 操做系統都同樣的, 沒什麼區別. www.php.net官網左側的說明提醒了我.
php-5.5.0beta1-Win32-VC11-x86
安裝包的名字也已經說明了, 要運行必須安裝vc11, x86表示32位, 假如是x64就是64位, 位數對於安裝vc11有幫助, 我的建議vc11 x86, x64兩個版本都安裝上比較好, 反正沒衝突.
而後啓動服務, 搞定. phpinfo信息以下:
-----------------------------------------------------------------------------------------------------------------------------
VC6:legacy Visual Studio 6 compiler,就是使用這個編譯器編譯的。
VC9:Visual Studio 2008 compiler,就是用微軟的VS編輯器編譯的。
因爲apache.org只提供VC6的版本,因此使用原版apache時只能使用VC6。(www.apachelounge.com上有apache VC9的版本提供,應該能夠和PHP VC9配合,沒用過)
TS:Thread Safe 線程安全, 執行時會進行線程(Thread)安全檢查,以防止有新要求就啓動新線程的CGI執行方式而耗盡系統資源
NTS:Non Thread Safe 非線程安全, 在執行時不進行線程(Thread)安全檢查
PHP的兩種執行方式:ISAPI和FastCGI。
ISAPI(Internet Server Application Programming Interface)執行方式是以DLL動態庫的形式使用,能夠在被用戶請求後執行,在處理完一個用戶請求後不會立刻消失,因此須要進行線程安全檢查,這樣來提升程序的執行效率,因此若是是以ISAPI來執行PHP,建議選擇Thread Safe版本
apache中的配置方式:
#下面這個是加載TS版本的php必須的
LoadModule php5_module 「xxx/php5apache2_2.dll」
#下面這行無關緊要
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt
FastCGI執行方式是以單一線程來執行操做,因此不須要進行線程的安全檢查,除去線程安全檢查的防禦反而能夠提升執行效率,因此,若是是以FastCGI來執行PHP,建議選擇Non Thread Safe版本。
apache中的配置方式:
#下面這兩行是加載NTS版本的php必須的,不能夠直接寫成Action application/x-httpd-php 「c:/wamp/bin/php/php3.5.6/php-cgi.exe」!
ScriptAlias /php/ "C:/wamp/bin/php/php3.5.6/"
Action application/x-httpd-php 「/php/php-cgi.exe」
#另外,還要有以前的AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt,這樣才能認識php格式的文件
#這樣配置完可能還會由於權限問題而沒法用php-cgi.exe解析php網頁,因此還要加上下面這段
<Directory "C:/wamp/bin/php/php5.3.6/"> AllowOverride None Options None Order allow,deny Allow from all</Directory>官方並不建議你將Non Thread Safe 應用於生產環境,因此咱們選擇Thread Safe 版本的PHP來使用。XAMPP在http-xampp.conf中默認配置是使用ISAPI的方式