>  기사  >  백엔드 개발  >  여러 버전의 PHP 간의 차이점에 대한 간략한 토론

여러 버전의 PHP 간의 차이점에 대한 간략한 토론

little bottle
little bottle앞으로
2019-04-24 11:29:555038검색

이 기사의 편집자는 다양한 PHP 버전 간의 차이점을 이해하도록 안내할 것입니다. 관심 있는 친구들이 이에 대해 배울 수 있기를 바랍니다.

PHP 버전은 버전 5에 진입한 이후 확실히 새 버전 출시 속도가 PHP5.2, 5.3, 5.4, 5.5부터 거의 6.0 수준으로 향상되었습니다.

참고: ecshop 사용자는 의식적으로 php5.2.17 버전을 사용하시기 바랍니다. 헤헤.

php 공식 홈페이지에서 php를 다운로드하면 vc6과 vc9의 차이점을 알 수 있습니다. 이게 무슨 뜻인가요?

VC6은 레거시 Visual Studio 6 컴파일러입니다. 이 버전의 컴파일러를 사용하여 PHP 코드를 컴파일하고 Apache를 애플리케이션 서버로 사용하는 경우 vc6을 선택하세요.
VC9는 Microsoft의 VS 편집기를 사용하여 컴파일된 Visual Studio 2008 컴파일러입니다. IIS를 애플리케이션 서버로 사용하는 경우 vc9를 선택합니다.

그래서 우리는 php-5.2.17-nts-Win32-VC6-x86.zip의 압축이 풀린 파일에서 nts가 있는 것과 없는 것의 차이점을 발견했습니다. 이것은 무엇을 의미합니까?

이것은 PHP 5.2 시리즈 버전부터 시작됩니다. 버전 5.2.1부터 ts와 nts, Thread Safe(thread safe)와 None Thread Safe(NTS, non-thread safe) 차이가 있습니다.

PHP의 Windows 버전에는 Thread Safe(thread safe)가 있습니다. 버전 5.2.1 ) 및 None Thread Safe(NTS, 비 스레드 안전), 둘 사이의 차이점은 무엇입니까? 어느 것을 사용해야 합니까? 여기에 간략한 소개가 있습니다.

2000년 10월 20일에 출시된 PHP 3.0.17의 첫 번째 Windows 버전부터 모든 버전은 스레드로부터 안전합니다. 이는 Linux/Unix 시스템이 다중 프로세스 작업 방식을 사용하는 반면 Windows 시스템은 다중 프로세스 작업 방식을 사용하기 때문입니다. -프로세스 작업 방법. 스레드가 작동하는 방식. IIS에서 CGI 모드로 PHP를 실행하면 속도가 매우 느려집니다. CGI 모드는 멀티 스레드가 아닌 멀티 프로세스를 기반으로 하기 때문입니다. ISAPI는 훨씬 빠른 다중 스레드 모드이므로 Windows에서 ISAPI 모드로 실행되도록 PHP를 구성합니다.

그러나 문제가 있습니다. 일반적으로 사용되는 많은 PHP 확장은 Linux/Unix의 다중 프로세스 아이디어를 기반으로 개발되어 ISAPI 모드에서 실행될 때 잘못될 수 있으며 따라서 IIS 프로세스가 중단될 가능성이 있습니다. , IIS의 경우 CGI 모드는 PHP를 실행하는 가장 안전한 방법이지만 CGI 모드는 각 HTTP 요청에 대해 전체 PHP 환경을 다시 로드하고 언로드해야 하며 그 소비가 엄청납니다.
IIS에서 PHP의 효율성과 보안을 고려하기 위해 Microsoft는 FastCGI 솔루션을 제공했습니다. FastCGI를 사용하면 새로운 요청이 있을 때마다 프로세스를 다시 여는 대신 PHP 프로세스를 재사용할 수 있습니다. 동시에 FastCGI에서는 여러 프로세스를 동시에 실행할 수도 있습니다. 이는 CGI 프로세스 모드의 과도한 사용 문제를 해결할 뿐만 아니라 CGI 프로세스 모드에 스레드 안전 문제가 없다는 사실도 활용합니다.
따라서 ISAPI를 사용하여 PHP를 실행하는 경우 Thread Safe(스레드 안전) 버전을 사용해야 하며 FastCGI 모드를 사용하여 PHP를 실행하는 경우 스레드 안전 검사를 사용할 필요가 없으며 None Thread Safe(NTS, 스레드 안전이 아닌) ) 버전은 효율성을 더 향상시킬 수 있습니다.

웹 서버, 즉 애플리케이션 서버에 따라 애플리케이션 요청을 처리할 때 멀티 프로세스 대신 멀티 스레딩을 사용하는 경우도 있습니다. 스레드에는 공유 레지스터와 메모리가 포함되므로 실수하기 쉽습니다(C의 상황을 고려하면). 언어 포인터), 시스템에는 레지스터의 데이터를 처리하고 일관성, 즉 스레드 안전성을 보장하는 데 시간과 리소스가 필요합니다.

그래서 Thread Safe를 사용할지 여부는 주로 웹 서버에서 사용하는 PHP 요청 처리 방법에 따라 달라집니다. IIS의 ISAPI 방식과 같은 다중 스레드 처리라면 FastCGI라면 non-thread를 선택하세요. 스레드 안전.

최종 제안: IIS에서 ISAPI를 사용하여 PHP를 실행하는 경우 스레드 안전(스레드 안전) 버전을 사용하고, FastCGI를 사용하여 PHP를 실행하는 경우 스레드 안전 없음(NTS, 비 스레드 안전) 버전을 사용하세요.

참고: php5.2에는 vc9가 없고, php5.3 및 php5.4에는 vc6이 없습니다. 헤헤. PHP 5.5부터 더 이상 xp와 win2003을 지원하지 않고 vc11도 지원합니다. 하하하하.

관련 튜토리얼: PHP 비디오 튜토리얼

위 내용은 여러 버전의 PHP 간의 차이점에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제