国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 後端開發(fā) php教程 PHP關(guān)於VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本選擇的問題

PHP關(guān)於VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本選擇的問題

Aug 08, 2016 am 09:24 AM
apache fastcgi httpd php

這里是我在搭建php環(huán)境時收集的資料供大家參考:

現(xiàn)在PHP官網(wǎng)上下載PHP安裝包都有VC11或VC9的字樣,這是什么含義,我們應(yīng)該下載哪種安裝包更好呢?其實PHP官網(wǎng)給出了答案:

VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設(shè)的,那你就選擇VC6版本。(現(xiàn)在PHP已經(jīng)沒有VC6了)。

VC9意思就是該版本PHP是用VisualStudio2008編譯的,而VC11則是用VisualStudio2012編譯的。這意味著

如果你下載的是VC9版本的,就需要先安VisualC++RedistributableforVisualStudio2008SP1,

如果你下載的是VC11版本的,就需要先安VisualC++RedistributableforVisualStudio2012.

搭建php首先看操作系統(tǒng)的版本,如果是Windows的在這里下:http://windows.php.net/download/

操作系統(tǒng)是32位還是64位?如果是32位的,就選擇帶“x86”的版本,如果是64位的,就選擇帶“x64”的版本。然后看WEB服務(wù)器是什么?如果是IIS系列,就選擇帶“Non Thread Safe”的版本,如果是Apache httpd系列,就選擇帶“Thread Safe”的版本。如果是Apache httpd還要看這個二進制版本是怎么編譯的,有三種編譯類型,分別是:VC6、VC9、VC11(分別代表Visual C++ 6、Visual C++ 2008、Visual C++ 2012)。這里就有麻煩了:PHP官方的最新版本5.5已經(jīng)用VC11編譯,5.4是用VC9編譯的??墒茿pache httpd的最新版本呢,至今還是用VC6編譯。這意味著一個驚人的事實:Apache httpd的官方版本和PHP的官方版本竟然是無法兼容的!那現(xiàn)有的Windows下的Apache+PHP是怎么搞的呢?可以自己用VC11編譯Apache httpd,但這太折騰了,PHP官方建議下載第三方打包好的Apache httpd版本,推薦了這個站點:http://www.apachelounge.com/download/,需要說明一點:這個VC11不支持XP,如果你像我一樣有XP懷舊癥,最高只能升級到5.4.24,5.5是用VC11編譯的,而VC11不支持XP和2003。

如果是Linux系的在這里下載PHP的源碼:http://cn2.php.net/downloads.php

與上面Windows版不同的是,這里下載到的不能直接用,只是PHP的源碼,要安裝需要自己編譯,要編譯就需要安裝gcc、make等一堆編譯軟件。看到文檔里說./configure、make、make install,針對的就是PHP的源碼版本而言。

自己編譯php就更麻煩了,依賴的庫一大堆,等著人掉進去的坑也有一大堆,我將在另一篇文章里說。如果嫌麻煩,可以找已經(jīng)編譯好的版本,具體的說就是各個發(fā)行版的官方的軟件庫。下面以流行的ubuntu系和centos系為例分別說明;

deb包管理式(ubuntu、Debian)

用apt-cache search php命令可以搜出很多結(jié)果,我們需要是“php5”,完整的命令是:apt-get install php5

這顯然不是永遠適用的,因為命令中有版本號5,未來PHP6是什么情況誰也不知道。

如果想在shell中安裝一個命令行的php引擎,就安裝這個包

apt-getinstall php5-cli

RPM包管理(Fedora、RedHat、SUSE、CentOS)

yuminstall php

如果是php命令行,就安裝yuminstall php-cli

如何選擇Thread Safe和Non ThreadSafe版本?

??? Windows版的PHP從版本5.2.1開始有ThreadSafe(線程安全)和None Thread Safe(NTS,非線程安全)之分,這兩者不同在于何處?到底應(yīng)該用哪種?這里做一個簡單的介紹。

  從2000年10月20日發(fā)布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,這是由于與Linux/Unix系統(tǒng)是采用多進程的工作方式不同的是Windows系統(tǒng)是采用多線程的工作方式。如果在IIS下以CGI方式運行PHP會非常慢,這是由于CGI模式是建立在多進程的基礎(chǔ)之上的,而非多線程。一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多線程的方式,這樣就快多了。但存在一個問題,很多常用的PHP擴展是以Linux/Unix的多進程思想來開發(fā)的,這些擴展在ISAPI的方式運行時就會出錯搞垮IIS。因此在IIS下CGI模式才是 PHP運行的最安全方式,但CGI模式對于每個HTTP請求都需要重新加載和卸載整個PHP環(huán)境,其消耗是巨大的。

  為了兼顧IIS下PHP的效率和安全,微軟給出了FastCGI的解決方案。FastCGI可以讓PHP的進程重復(fù)利用而不是每一個新的請求就重開一個進程。同時FastCGI也可以允許幾個進程同時執(zhí)行。這樣既解決了CGI進程模式消耗太大的問題,又利用上了CGI進程模式不存在線程安全問題的優(yōu)勢。

?????先從字面意思上理解,Thread Safe是線程安全,執(zhí)行時會進行線程(Thread)安全檢查,以防止有新要求就啟動新線程的CGI執(zhí)行方式而耗盡系統(tǒng)資源。Non Thread Safe是非線程安全,在執(zhí)行時不進行線程(Thread)安全檢查。

 因此,如果是使用ISAPI的方式來運行PHP就必須用ThreadSafe(線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)的版本能夠更好的提高效率。

?? 再來看PHP的兩種執(zhí)行方式:ISAPI和FastCGI。

? ISAPI執(zhí)行方式是以DLL動態(tài)庫的形式使用,可以在被用戶請求后執(zhí)行,在處理完一個用戶請求后不會馬上消失,所以需要進行線程安全檢查,這樣來提高程序的執(zhí)行效率,所以如果是以ISAPI來執(zhí)行PHP,建議選擇Thread Safe版本;

??? 而FastCGI執(zhí)行方式是以單一線程來執(zhí)行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執(zhí)行效率,所以,如果是以FastCGI來執(zhí)行PHP,建議選擇Non Thread Safe版本。

以上就介紹了PHP關(guān)於VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本選擇的問題,包括了方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

我如何了解最新的PHP開發(fā)和最佳實踐? 我如何了解最新的PHP開發(fā)和最佳實踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

什麼是PHP,為什麼它用於Web開發(fā)? 什麼是PHP,為什麼它用於Web開發(fā)? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

如何設(shè)置PHP時區(qū)? 如何設(shè)置PHP時區(qū)? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

我如何驗證PHP中的用戶輸入以確保其符合某些標準? 我如何驗證PHP中的用戶輸入以確保其符合某些標準? Jun 22, 2025 am 01:00 AM

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

什麼是php(serialize(),Unserialize())中的數(shù)據(jù)序列化? 什麼是php(serialize(),Unserialize())中的數(shù)據(jù)序列化? Jun 22, 2025 am 01:03 AM

thephpfunctionserize()andunSerialize()redustoconvertComplexdatStructDestoresToroStoroStoroSandaBackagagain.1.Serialize()

如何將PHP代碼嵌入HTML文件中? 如何將PHP代碼嵌入HTML文件中? Jun 22, 2025 am 01:00 AM

可以將PHP代碼嵌入HTML文件中,但需確保文件以.php為擴展名,以便服務(wù)器能正確解析。使用標準的標籤包裹PHP代碼,可在HTML中任意位置插入動態(tài)內(nèi)容。此外,可在同一文件中多次切換PHP與HTML,實現(xiàn)條件渲染等動態(tài)功能。務(wù)必注意服務(wù)器配置及語法正確性,避免因短標籤、引號錯誤或遺漏結(jié)束標籤導(dǎo)致問題。

編寫清潔和可維護的PHP代碼的最佳實踐是什麼? 編寫清潔和可維護的PHP代碼的最佳實踐是什麼? Jun 24, 2025 am 12:53 AM

寫乾淨(jìng)、易維護的PHP代碼關(guān)鍵在於清晰命名、遵循標準、合理結(jié)構(gòu)、善用註釋和可測試性。 1.使用明確的變量、函數(shù)和類名,如$userData和calculateTotalPrice();2.遵循PSR-12標準統(tǒng)一代碼風(fēng)格;3.按職責(zé)拆分代碼結(jié)構(gòu),使用MVC或Laravel式目錄組織;4.避免麵條式代碼,將邏輯拆分為單一職責(zé)的小函數(shù);5.在關(guān)鍵處添加註釋並撰寫接口文檔,明確參數(shù)、返回值和異常;6.提高可測試性,採用依賴注入、減少全局狀態(tài)和靜態(tài)方法。這些做法提升代碼質(zhì)量、協(xié)作效率和後期維護便利性。

如何使用PHP執(zhí)行SQL查詢? 如何使用PHP執(zhí)行SQL查詢? Jun 24, 2025 am 12:54 AM

Yes,youcanrunSQLqueriesusingPHP,andtheprocessinvolveschoosingadatabaseextension,connectingtothedatabase,executingqueriessafely,andclosingconnectionswhendone.Todothis,firstchoosebetweenMySQLiorPDO,withPDObeingmoreflexibleduetosupportingmultipledatabas

See all articles