當前位置:首頁 » 編程語言 » php線程安全和非線程安全

php線程安全和非線程安全

發布時間: 2022-09-04 14:18:14

php5 non-thread-safe和thread-safe的區別

PHP5 non-thread-safe和thread-safe的區別
從PHP5.2.10版本開始(現在有PHP5.2.10和5.3兩個版本),有None-Thread Safe與Thread Safe兩種版本的可供選擇,這兩種版本有何不同,作為使用者來說又應該如何選擇呢?
先從字面意思上理解,None-Thread Safe就是非線程安全,在執行時不進行線程(thread)安全檢查;

Ⅱ php如何保證線程安全

線程安全本身在php
的運行原理上就做到了,每個請求重新分配的內存空間,所謂php
的現線程安全,指的是
php擴展,
隨著擴展模塊的啟動,分配的內存可以提供給多個請求調用.
php線程安全通過全局的global_id
,為每個全局變數做了唯一ID的區分.

Ⅲ php的幾個版本的區別

PHP5.2 以前:autoload, PDO 和 Mysqli, 類型約束
PHP5.2:JSON 支持
PHP5.3:棄用的功能,匿名函數,新增魔術方法,命名空間,後期靜態綁定,Heredoc 和 Nowdoc, const, 三元運算符,Phar
PHP5.4:Short Open Tag, 數組簡寫形式,Traits, 內置 Web 伺服器,細節修改
PHP5.5:yield, list() 用於 foreach, 細節修改
PHP5.6: 常量增強,可變函數參數,命名空間增強

Ⅳ Nginx下php裝什麼版本及PHP的線程安全與非線程安全版本的區別

Apache使用線程安全(TS)版本的PHP
IIS以及使用FastCGI方式的伺服器使用非線程安全(NTS)版本的PHP
TS為多線程構建,NTS為單線程構建
TS refers to multithread capable builds.NTS refers to single thread only builds. Use case for TS binaries involves interaction with a multithreaded SAPI and PHP loaded as a mole into a web server. For NTS binaries the widespread use case is interaction with a web server through the FastCGI protocol, utilizing no multithreading (but also for example CLI).

Ⅳ PHP線程安全與非線程安全的區別:如何選擇用哪一個

首先,Linux下的PHP,沒有線程安全版和非線程安全版之分。從2000年10月20日發布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,直至5.2.1版本開始有Thread Safe(TS,線程安全)和None Thread Safe(NTS,非線程安全)之分。

因為,Linux/Unix系統採用的是多進程的工作方式,而Windows系統採用多線程的工作方式。即:Linux系統的任務調度基本單位是進程,Windows系統的任務調度基本單位是線程(本觀點來自自學與總結,不能保證百分之百正確)。

所以,在Windows系統的IIS下以CGI方式運行PHP會非常慢,這是由於CGI模式是建立在多進程的基礎之上的,而非多線程,且CGI模式對於每個HTTP請求都需要重新載入和卸載整個PHP環境,其消耗是巨大的。

於是,一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多線程的方式,這樣就快多了。但存在一個問題,很多常用的PHP擴展是以 Linux/Unix的多進程思想來開發的,這些擴展在ISAPI的方式運行時就會出錯搞垮IIS。

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

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

名詞解析:

  • IIS:Internet Information Services (互聯網信息服務),是由微軟公司提供的基於運行Microsoft Windows的互聯網基本服務

  • CGI:Common Gateway Interface (通用網關介面),是外部應用程序(CGI程序)與Web伺服器之間的介面標准

  • ISAPI:Internet Server Application Programming Interface (互聯網應用程序介面),是為Microsoft所提的Internet server的API

  • FastCGI:CGI存在收到每個請求時都開辟一個進程等不足,FastCGI可以理解為是征對CGI的改進版

Ⅵ PHP版本VC6和VC9,Non Thread Safe和Thread Safe的區別

VC6
版本是使用
Visual
Studio
6
編譯器編譯的,如果你是在windows下使用Apache+PHP的,請選擇VC6版本。
VC9
版本是使用
Visual
Studio
2008
編譯器編譯的,如果你是在windows下使用IIS+PHP的,請選擇VC9版本。
Non
Thread
Safe就是非線程安全,在執行時不進行線程(Thread)安全檢查;
Non
Thread
Safe
是線程安全,執行時會進行線程(Thread)安全檢查,以防止有新要求就啟動新線程的
CGI
執行方式而耗盡系統資源;
Windows下的PHP
主要有兩種執行方式:ISAPI

FastCGI。
ISAPI
執行方式是以
DLL
動態庫的形式使用,可以在被用戶請求後執行,在處理完一個用戶請求後不會馬上消失,所以需要進行線程安全檢查,這樣來提高程序的執行效率,所以如果是以
ISAPI
來執行
PHP,建議選擇
Thread
Safe
版本;
FastCGI
執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以
FastCGI
來執行
PHP,建議選擇
Non
Thread
Safe
版本。
官方並不建議你將Non
Thread
Safe
應用於生產環境。

Ⅶ php5 NTS和TS版本的區別,所謂的線程安全和非安全

先從字面意思上理解:

  1. None-Thread Safe就是非線程安全,在執行時不進行線程(thread)安全檢查;

  2. Thread Safe就是線程安全,執行時會進行線程(thread)安全檢查,以防止有新要求就啟動新線程的 CGI 執行方式耗盡系統資源。


再來看PHP的兩種執行方式:

ISAPI和FastCGI。

  1. FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以 FastCGI(無論搭配 IIS 6 或 IIS 7)執行 PHP ,都建議下載、執行 non-thread safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 zip 套件)。

  2. 而線程安全檢查正是為ISAPI方式的PHP准備的,因為有許多php模塊都不是線程安全的,所以需要使用Thread Safe的PHP。

Ⅷ 如何判斷PHP 是線程安全還是非線程安全的

判斷PHP 是線程安全還是非線程安全:
1.通過phpinfo(); 查看其中的 Thread Safety 項,這個項目就是查看是否是線程安全,如果是:enabled,一般來說應該是ts版,否則是nts版。

2.命令行:php -i|grep -i thread
結果:Thread Safety => disabled 【disabled表示非線程安全】
如果沒有grep命令(windows),那就一個個找吧。

Ⅸ Windows 7 下如何配置PHP網站運行環境

本文適合PHP網站技術開發人員,對普通Windows7用戶意義不大,敬請大家注意。一、Apache安裝

版本解釋:openssl是表示帶有openssl模塊,利用openssl就可以給Apache配置SSL安全鏈接的,也就是使用https://方式進行訪問

nossl則表示不帶OpenSSL模塊,無法用於SSL安全鏈接,在這里我們下載帶OpenSSL的。

選擇版本:apache_2.2.14-win32-x86-openssl-0.9.8k.msi (此處以32位為例)

下載地址:http://www.apache.org/dist/httpd/binaries/win32/

首先我們在D盤(盤符根據實際情況自己選擇)新建一個目錄, 並且命名為「WAMP」其意義為「Wdindows Apache Mysql PhpMyAdmin」 之後安裝的一些內容,也都將安裝在該目錄下。

1.安裝說明:

運行apache安裝程序,方法非常簡單,彈安裝界面後一直「next」

接著會出現一個界面,需要填寫3個內容,分別為:Network Domain、Server Name、Administrator』s Email Address 隨便填寫就好,不影響內容。

在下面還有2個選項,默認選擇為80埠,第二個為8080埠,根據個人需求選擇,一般為默認80埠。

我們繼續安裝,選擇Custom(自定義安裝)-「next」

其中有打著紅X的組件,我們單擊這個組件容,選擇「This feature, and all subfeatures, will be

installed on local hard drive.」,即「此部分,及下屬子部分內容,全部安裝在本地硬碟上」。-「next」

然後選擇右下角的「change 」改變安裝路徑,安裝到剛才建立的目錄中「D:WAMPApache」-「next」

安裝完畢後,電腦右下角會多出一個圖標,雙擊打開,選擇start或restart,能正常運行,至此安裝完畢。

2.修改配置:

打開安裝錄下D:WAMPApacheconfhttpd.conf 文件(修改配置文件時,不建議使用記事本,可能會對其造成影響,推薦使用Notepad++或其他編輯軟體打開修改)

打開以後Ctrl+F查找所要修改的內容

在#LoadMole vhost_alias_mole moles/mod_vhost_alias.so下添加:

LoadMole php5_mole 「D:/WAMP/PHP/php5apache2_2.dll」

PHPIniDir 「D:/WAMP/PHP」

AddType application/x-httpd-php .php

AddType application/x-httpd-php .htm

AddType application/x-httpd-php .html

DocumentRoot 「E:/WAMP/Apache/htdocs」

修改成(這里的路徑和IIS中wwwroot目錄一樣,用於存放網頁,自定義或不做修改默認):DocumentRoot 「D:/WAMP/www」

修改成(自定義或不做修改默認):

DirectoryIndex index.html

修改成:DirectoryIndex index.php default.php index.html index.htm default.html default.htm

3.測試

在D:/WAMP/www目錄下 建立個index.html頁面

在瀏覽器中輸入 http://localhost/

如果能正常顯示,Apache配置完畢,已經正常運行。

二、MySql安裝

版本解釋:The Essentials Package:不包含 embedded server and benchmark suite,有自動安裝程序和配置向導,沒有MySQL Documentation。

The Complete Package:包含 embedded server and benchmark suite,有自動安裝程序和配置向導,有MySQL Documentation。

The Noinstall Archive:包含 embedded server and benchmark suite,沒有自動安裝程序和配置向導,有MySQL Documentation。

選擇版本:mysql-essential-5.1.44-win32.msi

下載地址:http://www.mysql.com/downloads/mysql/

1.安裝說明:

打開安裝程序,單擊「next」

選擇custom,組件為默認選擇,我們不做改動-「next」

路徑設置為「D:WAMPMysql」-「next」

安裝好以後點擊「finish」

跟著會出現一個配置向導-「next」

選擇「Detailed Configuration(詳細配置)」-「next」

這里有3個選項:

Developer Machine,將只用盡量少的內存;

Server Machine,將使用中等數量內存;

Dedicated MySQL Server Machine,這台伺服器上面只跑mysql資料庫,將佔用全部的內存。

可以根據自己需求選擇,這里我們選擇第二種「Server Machine」-「next」

選擇資料庫用途,同樣有3個選項:

Mutltifunctional Database多功能用途,將把資料庫優化成很好的innodb存儲類型和高效率的myisam存儲類型;

Transactional Database Only只用於事務處理類型,最好的優化innodb,但同時也支持myisam;

Non-Transactional Databse Only非事務處理類型,適合於簡單的應用,只有不支持事務的myisam類型是被支持的。

一般選擇第一種多功能的,同樣我們也是。-「next」

選擇InnodDB的數據存放位置,一般默認就行,為了統一我填寫了「WAMP/MySQL Datafiles」-「next」

選擇mysql允許的最大連接數,第一種是最大20個連接並發數,第二種是最大500個並發連接數,最後一種是自定義,自己可以根據需求選擇,我選擇第二個-「next」

下面是選擇資料庫監聽的埠,一般默認是3306,如果改成其他埠,以後連接資料庫的時候都要記住修改的埠,否則不能連接mysql資料庫,比較麻煩,這里不做修改,用mysq的默認埠:3306-「next」

這一步設置mysql的默認編碼,我們選擇第三個,並在Character Set菜單中,選擇「gbk」編碼-「next」

(註:如果要用原來資料庫的數據,最好能確定原來資料庫用的是什麼編碼,如果這里設置的編碼和原來資料庫數據的編碼不一致,在使用的時候可能會出現亂碼。)

這一步是是否要把mysql設置成windows的,一般選擇設成服務,這樣以後就可以通過服務中啟動和關閉mysql資料庫。下面的復選框也 勾選上,這樣,在cmd模式下,不必非到mysql的bin目錄下執行命令。也就是把上下2個勾都打上,中間默認-「next」

這一步是設置mysql的超級用戶密碼,這個超級用戶非常重要,對mysql擁有全部的許可權,請設置好並牢記超級用戶的密碼,下面有個復選框是選擇是否允

許遠程機器用root用戶連接到你的mysql伺服器上面,如果有這個需求,也請勾選。這里我們使用默認選擇,在New root

password和Confirm中輸入密碼。「next」

點擊「execute」進行配置,稍微等待一會,圓點上的勾全部打上,就代表配置完畢。

2.修改配置:

打開D:WAMPMySQLmy.ini

設置datadir為D:/WAMP/MySQL/data/或你所要存放數據位置的目錄即可。

三、PHP安裝

版本解釋:VC9 專門為IIS定值的腳本,使用Visual Studio 2008編譯器編譯,支持最新的微軟組建,從而提高效率。

VC6 是為了其他WEB服務軟體提供的腳本 如 Apache。

Thread Safe 現成安全,之星時會進行線程 安全檢查,以防止有心要求就啟動新線程(Thread)的CGI執行方式而耗盡系統資源。

Non Thread Safe是非線程安全,在執行時不進行線程(Thread)安全檢查

選擇版本:PHP5.3(5.3.1)中VC6 x86 Thread Safe下 ZIP下載

下載地址:http://windows.php.net/download/

1.安裝說明

由於我們下載的的是ZIP壓縮包,只需要將文件解壓到「D:WAMPPHP」目錄下即可

2.修改配置

將E:WAMPPHPphp.ini-development 文件修改成php.ini

打開php.ini

; extension_dir = 「ext」

修改成:extension_dir = 「E:WAMPPHPext」

將947行下,這些文件前面的「;」去除

extension=php_curl.dll

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

extension=php_mysqli.dll

extension=php_pdo_mysql.dll

extension=php_xmlrpc.dll

;date.timezone =

修改成(很多網站沒提到這里要修改,默認為美國時間,如果不修改會報錯):date.timezone = Asia/Shanghai

3.測試

重啟Apache(修改過配置文件 必須重啟Apache才會生效)

新建個index.php 頁面,代碼中輸入,保存文件放到「D:WMAPwww」目錄下

打開瀏覽器輸入:http://localhost/index.php 如果能正常顯示,說明PHP配置完畢,可以查看該頁面的PHP信息是否正確。

(註:在改文件中輸入函數可輸出大量的有關PHP當前狀態的信息,如PHP版本,伺服器信息和環境等。)

(註:)

接著我們測試下,是否能連接到Mysql

再新建個link.php,下代碼中輸入

$link=mysql_connect(「127.0.0.1″,」root」,」Mysql安裝時填寫的密碼」);

if(!$link) echo 「Mysql資料庫連接失敗!」;

else echo 「Mysql資料庫連接成功!」;

mysql_close();

?>

也保存文件放到「D:WMAPwww」目錄下

打開瀏覽器輸入:http://localhost/link.php 查看

四、PhpMyAdmin安裝

版本解釋:phpMyAdmin-3.2.5

選擇版本:phpMyAdmin-3.2.5-all-languages.zip

下載地址:http://www.phpmyadmin.net/home_page/downloads.php

1.安裝說明

解壓到D:WAMPphpMyAdmin

2.修改配置

打開D:WAMPphpMyAdminlibrariesconfig.default.php

$cfg['PmaAbsoluteUri'] = 」;

修改成(填寫訪問phpMyAdmin的絕對URL):$cfg['PmaAbsoluteUri'] = 『http://localhost/PHPMyadmin/』;

$cfg['Servers'][$i]['host'] = 『localhost』;

修改成(填寫伺服器地址,通常默認,不需要修改):$cfg['Servers'][$i]['host'] = 『localhost』;

$cfg['Servers'][$i]['user'] = 『root』;

修改成(填寫Mysql用戶名,這里我們默認):$cfg['Servers'][$i]['user'] = 『root』;

$cfg['Servers'][$i]['password'] = 」;

修改成(填寫Mysql密碼):$cfg['Servers'][$i]['password'] = 『Mysql PWD;

$cfg['Servers'][$i]['auth_type'] = 『cookie』;

修改成(設置認證方法,安全因素考慮,填寫成cookie):$cfg['Servers'][$i]['auth_type'] = 『cookie』;

$cfg['blowfish_secret'] = 」;

修改成(設置短語密碼,如果上面設置成cookie,那這里不能留空,不然登陸會提示錯誤):$cfg['blowfish_secret'] = 『cookie』;

3.測試

打開瀏覽器輸入:http://localhost/phpmyadmin/ 訪問和登陸

五、結尾

至此Windows7下的PHP環境搭建完畢,大家盡情的使用吧。

Ⅹ PHP non-thread-safe和thread-safe這兩個版本的區別

PHP5 non-thread-safe和thread-safe的區別
從PHP5.2.10版本開始(現在有PHP5.2.10和5.3兩個版本),有None-Thread Safe與Thread Safe兩種版本的可供選擇,這兩種版本有何不同,作為使用者來說又應該如何選擇呢?
先從字面意思上理解,None-Thread Safe就是非線程安全,在執行時不進行線程(thread)安全檢查;
Thread Safe就是線程安全,執行時會進行線程(thread)安全檢查,以防止有新要求就啟動新線程的 CGI 執行方式耗盡系統資源。
再來看PHP的兩種執行方式:ISAPI和FastCGI。
FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以 FastCGI(搭配IIS)執行 PHP ,都建議下載執行 non-thread safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 zip 套件)。
而線程安全檢查正是為ISAPI方式的PHP准備的,因為有許多php模塊都不是線程安全的,所以需要使用Thread Safe的PHP(搭配apache)。
如果你還搞不清楚,那麼只需知道你是php+apache還是php+iis組合
non-thread-safe 非 線程安全與IIS搭配環境
thread-safe 線程安全 與apache搭配環境

另外php還有VC6 VC9版本區分
VC6和VC9一個支持apache一個支持IIS
VC9用在apache上也沒問題,如果你用iis就必須用vc9的,如果你用apache vc6和vc9都可以用。

熱點內容
可緩存影視 發布:2025-01-15 07:42:50 瀏覽:799
php函數默認值 發布:2025-01-15 07:34:31 瀏覽:238
編譯應用後apk無法打開 發布:2025-01-15 07:33:45 瀏覽:437
lc腳本編輯器 發布:2025-01-15 07:18:59 瀏覽:528
追劇腳本 發布:2025-01-15 07:00:39 瀏覽:446
c語言字元串庫函數 發布:2025-01-15 06:54:49 瀏覽:526
c語言的工作 發布:2025-01-15 06:50:50 瀏覽:521
口語交際訪問 發布:2025-01-15 06:44:13 瀏覽:329
編程少兒學習 發布:2025-01-15 06:39:03 瀏覽:504
伺服器搭建怎麼設置 發布:2025-01-15 06:39:01 瀏覽:152