php教程 php手册 PHP版本的区别

PHP版本的区别

Jun 06, 2016 pm 08:02 PM
php 차이점 버전 입력하다

PHP的版本,自从进入5以后,发布新版本速度明显提升很多,从PHP5.2开始,5.3 、5.4 、5.5,就快要6.0了。 注:ecshop用户请自觉使用php5.2.17版本。呵呵。 在php官网下载php时,我们会发现有vc6、vc9的区别,这是什么意思呢? VC6是legacy Visual Studio 6 c

PHP的版本,自从进入5以后,发布新版本速度明显提升很多,从PHP5.2开始,5.3 、5.4 、5.5,就快要6.0了。


注:ecshop用户请自觉使用php5.2.17版本。呵呵。


在php官网下载php时,我们会发现有vc6、vc9的区别,这是什么意思呢?


VC6是legacy Visual Studio 6 compiler,使用这个版本的编译器编译PHP代码的,使用apache做应用程序服务器,则选择vc6。

VC9是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。使用IIS做应用程序服务器,则选择vc9。


那么,我们注意到,php-5.2.17-nts-Win32-VC6-x86.zip php的解压文件中,有nts和没有nts的区别,这个又是什么意思呢?


这要从php的5.2系列版本说起。从5.2.1版本开始,就有ts和nts的区别,Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)


Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。


从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是因为Linux/Unix系统是采用多进程的工作方式,而Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,因为CGI模式建立在多进程的基础之上,而不是多线程。我们在windows上会把PHP配置成以ISAPI的方式来运行,因为ISAPI是多线程的方式,这样就快多了。


但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错,很可能将IIS进程搞崩溃,因此对于IIS来说,CGI模式才是PHP运行的最安全的方式,只不过CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。


根据不同的webserver,也就是应用程序服务器,在处理应用请求的时候,有些是用多线程而非多进程的方式,那么由于线程会牵扯到共享寄存器和内存方面的,所以很容易出错(考虑c语言指针的情况),那么系统就需要时间和资源来处理寄存器中的数据,保证它们的一致性,也就是保证线程安全了。


所以是否使用Thread Safe(线程安全),主要看web server所采用的PHP请求处理方式,如果是多线程处理如IIS的ISAPI方式,那么请选择线程安全,如果是FastCGI那么选择非线程安全。


最终建议:IIS下,使用ISAPI方式运行PHP,就使用Thread Safe(线程安全)的版本,使用FastCGI方式运行PHP,就使用None Thread Safe(NTS,非线程安全)的版本。


注:php5.2没有vc9,php5.3、php5.4没有vc6。呵呵。PHP5.5开始,不支持xp和win2003了,更是vc11了,呵呵呵呵。


一般来说,我喜欢使用解压配置版本,更能了解PHP的设置和文件。有c语言基础的同仁可以下载源码看看,说不定更有所心得。


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

비트 코인에는 비트 코인이 주식이 있습니까? 비트 코인에는 비트 코인이 주식이 있습니까? Mar 03, 2025 pm 06:42 PM

비트 코인에는 비트 코인이 주식이 있습니까?

R1과 V3 버전의 차이점은 무엇입니까? R1과 V3 버전의 차이점은 무엇입니까? Feb 19, 2025 pm 03:24 PM

R1과 V3 버전의 차이점은 무엇입니까?

깊은 사용을위한 FAQ 요약 깊은 사용을위한 FAQ 요약 Feb 19, 2025 pm 03:45 PM

깊은 사용을위한 FAQ 요약

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열로 모음을 계산하는 PHP 프로그램

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까?

Bittensor가 AI 트랙에서 'Bitcoin'이라고 말하는 이유는 무엇입니까? Bittensor가 AI 트랙에서 'Bitcoin'이라고 말하는 이유는 무엇입니까? Mar 04, 2025 pm 04:06 PM

Bittensor가 AI 트랙에서 'Bitcoin'이라고 말하는 이유는 무엇입니까?

See all articles