<strong id="r23ni"></strong>
    <em id="r23ni"></em>

    <kbd id="r23ni"></kbd>
    當(dāng)前位置:幫助 >> 基本教程

    PHP TS 和 NTS 版本選擇

    發(fā)布日期:2019/11/1 8:29:14 訪問次數(shù):6331

    在PHP 開發(fā)和生產(chǎn)環(huán)境搭建過程中,需要安裝PHP語言解析器。官方提供了2種類型的版本,線程安全(TS)版和非線程安全(NTS)版,有時后我們開發(fā)環(huán)境和實(shí)際生產(chǎn)的環(huán)境有所不同,因此也需要選擇安裝對應(yīng)的PHP版本。


    1、簡介
    TS:
    TS(Thread-Safety)即線程安全,多線程訪問時,采用了加鎖機(jī)制,當(dāng)一個線程訪問該類的某個數(shù)據(jù)時進(jìn)行數(shù)據(jù)加鎖保護(hù),其他線程不能同時進(jìn)行訪問該數(shù)據(jù),直到該線程讀取完畢,其他線程才可訪問使用該數(shù)據(jù),好處是不會出現(xiàn)數(shù)據(jù)不一致或者數(shù)據(jù)污染的情況,但耗費(fèi)的時間要比 NTS 長。
    PHP以 ISAPI 方式(Apache 常用方式)加載的時候選擇TS版本。
    NTS:
    NTS(None-Thread Safe)即非線程安全,不提供數(shù)據(jù)訪問保護(hù),有可能出現(xiàn)多個線程先后或同時操作同一數(shù)據(jù)的情況,容易造成數(shù)據(jù)錯亂(即臟數(shù)據(jù)),一般操作的執(zhí)行時間要比 TS 短。
    PHP以FAST-CGI方式加載運(yùn)行的時候選擇NTS版,具有更好的性能;
    ISAPI:
    ISAPI(Internet Server Application Programming Interface), 通常是指被http服務(wù)器所加載,以服務(wù)器的模塊形式運(yùn)行,由微 軟提出,故只能在win平臺上運(yùn)行,如win下的apache,iis[用fast cgi 方式工作更穩(wěn)定],而linux上php 則以 Apache模塊(常用方式)或者php-fpm(該方式更適合于NGINX+PHP 運(yùn)行)的方式運(yùn)行。
    CGI:
    cgi(Common Gateway Interface):HTTP服務(wù)器與客戶端機(jī)器上的程序進(jìn)行“交談”的一種工具,簡而言之,cig就是一種 后臺語言,可以與服務(wù)器進(jìn)行通訊。此時的php是作為一個獨(dú)立的程序運(yùn)行的,特點(diǎn)就是耗費(fèi)內(nèi)存。
    FAST CGI:
    fast cgi是一個常駐(long-live)型的CGI,它可以一直執(zhí)行著,只要激活后,不會每次都要花費(fèi)時間去fork一個新進(jìn)程。這種方式 是與語言無關(guān)的、可伸縮架構(gòu)的CGI開放擴(kuò)展,其主要行為是將CGI解釋器進(jìn)程保持在內(nèi)存中并因此獲得較 高的性能。
    FAST-CGI 是微軟為了解決 CGI 解釋器的不足而提出改進(jìn)方案。當(dāng)一個請求向 web server 發(fā)送請求時,web server總會fork一個CGI解釋器進(jìn)程進(jìn)行處理這個請求,進(jìn)程處理完成之后將結(jié)果返回給web server,web server將結(jié)果返回并顯示出來,進(jìn)程結(jié)束,當(dāng)用戶再次請求同一個頁面時,web server又會fork一個新進(jìn)程進(jìn)行請求處理,這樣效率會比較低下(CGI被人詬病的主要原因)。而采用FAST-CGI 解釋器的 話,當(dāng)一個請求執(zhí)行完畢后不會注銷該進(jìn)程,而是將改進(jìn)程進(jìn)入休眠期,當(dāng)接收到新的請求時,重新啟用改進(jìn)程進(jìn)行處理。FAST-CGI 較CGI 減少了進(jìn)程的重復(fù)創(chuàng)建的資源占用。
    進(jìn)程與線程:一個進(jìn)程至少存在一個或多個線程。


    2、選擇
    通常win下 PHP + Apache 組合,以 ISAPI 的方式運(yùn)行。
    而linux下通常分為2種:
     Apache + PHP,PHP一般作為Apache 的模塊進(jìn)行運(yùn)行;
     Nginx + PHP ,以 phpfast cgi的方式,即php-fpm的方式運(yùn)行,該方式對高并發(fā)、高負(fù)載有良好的性能體現(xiàn),因此很多網(wǎng)站采用該方式進(jìn)行環(huán)境的搭建。
    Nginx 較Apache 的配置要少很多,因此人為出錯的概率要少一點(diǎn),但也因此 Apache 的 穩(wěn)定性要比Nginx 高。
    前面廢話了那么多,下面才是重點(diǎn) ...


    總結(jié):
    以 ISAPI 方式運(yùn)行就用 TS 線程安全版
    以 FAST-CGI 或 PHP-FPM 方式運(yùn)行就用NTS 非線程安全版
    通常 Windows 下 Apache + PHP 選TS ,IIS(fast-cgi) + PHP 選NTS
    通常Linux 下 Apache + PHP 選TS,Nginx + PHP 選NTS

    微信
    QQ
    電話
    13400472755
    返回頂部
    亚洲国产天堂久久综合网,成人av无码中文字幕免费,日日噜噜夜夜狠狠无码,国产综合久久精品综合AV无码

      <strong id="r23ni"></strong>
      <em id="r23ni"></em>

      <kbd id="r23ni"></kbd>