PHP 버전 선택 5.2.17 5.3.27 5.3.28 5.4 5.5 호환성 문제 Analysis_php Digest

WBOY
풀어 주다: 2016-05-16 19:54:48
원래의
1016명이 탐색했습니다.

편집자: Maizi

PHP 버전을 선택할 때 다들 헷갈리실 텐데요. 어떤 버전을 선택해야 할까요?

질문:

이제 Windows Server 2008 r2를 사용하여 새 서버를 구입했습니다. PHP 5.4 환경을 구성합니다.
그런데 개발하기 전에는 2003과 PHP 버전 5.2를 사용했는데, 새 서버에 이식하면 프로그램 실행에 영향이 있을까요? 아니면 주의해야 할 다른 문제가 있나요?
API 버전

PHP는 주요 버전에 대해 이전 버전과 호환되는 업그레이드 방법을 채택합니다. 이는 5.5가 5.1-5.4와 호환된다는 것을 의미합니다. 하지만 호환성은 실제로 낙관적이지 않으며 PHP 관계자로부터 좋은 솔루션을 기대해서는 안됩니다. 2013년 9월 현재 버전은 5.2.17 5.3.27 5.4.17 5.5.3

5.2.17
이 버전은 현재 가장 널리 지원되는 버전이라고 할 수 있습니다. Drupal7.23, Joomla2.5와 같은 대부분의 오픈 소스 소프트웨어와 dedecms5.7, discuzX3 등과 같은 대부분의 국내 소프트웨어는 여전히 이 버전을 사용합니다. 5.2를 지원하는 경우 특별한 요구 사항이 없는 경우 이 버전을 설치하는 것이 가장 문제가 없고 노동력을 절약하지만 장기적으로는 결국 중단될 수 있습니다. 요즘 많은 호스팅 회사에서는 인건비 절감을 위해 PHP 버전 업그레이드를 게을리하고, 기본적으로 지원하고 있습니다. (여기에 한마디를 입력하세요. 더 많은 설치 환경과 호환되도록 하기 위해 이제 국내 소프트웨어는 매우 선의로 되어 있습니다. PHP5.1도 지원합니다(discuzX3는 지원하지 않습니다). 가장 드문 것은 성능이 좋지 않다는 것입니다. 훨씬 뒤떨어져 있고 이것을 할 수 있습니다. 정말 쉽지 않습니다!) Drupal6은 이 버전을 사용하는 것이 좋습니다.

5.3.28(권장)
이 버전의 이름은 5로 시작하지만, 많은 사람들이 PHP 6.0 버전의 시작이라고 생각합니다. 성능이 향상되었고 많은 API가 변경되었기 때문에 5.2와의 호환성은 그다지 좋지 않습니다. 5.2~5.3까지 호환이 되지만 문제가 많아 그냥 5.2를 포기하는 경우도 많은 것 같습니다. 예를 들어 Joomla3는 5.3 이상만 지원합니다. Drupal7의 경우 이 버전을 사용하는 것이 좋습니다. 지원이 상당히 좋습니다. 이 버전은 Drupal8에도 사용할 수 있으며 지원이 상당히 좋습니다. 이 버전은 널리 사용되며 성능과 호환성 사이의 적절한 균형을 유지합니다.

5.4(부드럽게 권장)
5.4는 기본적으로 거의 완성되었으며, Drupal7의 안정성도 좋습니다. 나중에 업그레이드하기가 너무 게으른 경우 한 단계로 이 버전을 설치할 수 있습니다.

5.5
5.3부터 향후 버전은 기본적으로 성능 향상에 중점을 두고 기능 및 기타 기능은 하위 호환될 예정입니다. 5.5부터 좀 더 강력한 성능을 갖춘 64비트 버전이 나오는 것 같은데, 아직 시도해본 적도 없고 감히 언급할 수도 없습니다.

요약
오픈 소스 소프트웨어에서 PHP5.3 설치를 권장한다면 5.5 대신 5.3을 사용해야 합니다. 어쨌든 호환되고 성능이 더 좋을 것이라고 생각할 수도 있는데 새로운 것을 사용하는 것은 어떨까요? 그렇게 말하지만, 오픈소스 소프트웨어는 개발할 때 대개 특정 환경에서 개발된다는 사실을 알고 계실 겁니다. 아무리 호환성이 좋아도 예상치 못한 놀라움이 있을 것입니다(팀이 아무리 강력해도 불가능합니다). 모든 기능 API에 대해 호환성 테스트를 수행하면 작업 부하가 상당히 끔찍합니다!) 특정 환경에서만 테스트 및 최적화되며 호환성 문제가 있음을 알고 있어도 팀에서는 더 높은 버전과 호환되도록 수정하지 않습니다. 딱딱한 것은 아니지만 안전성과 안정성을 고려한 제품입니다. 오픈소스 분위기에서는 “최신 것이 최고”가 아닌 “충분한 것이 최고”라는 인식을 가져야 합니다. 예를 들어 Joomla 3.1은 5.4~5.5에서는 제대로 실행되지 않고 설치조차 성공하지 못합니다. 하지만 Drupal은 (이 시스템에서는) 5.5.3에서 정상적으로 실행됩니다. 그런데 작동 중에 예상치 못한 오류가 발생한 것 같습니다. 버전 문제인지는 모르겠습니다.

스레드에 안전하지 않거나 스레드에 안전하지 않음

Apache는 일반적으로 스레드로부터 안전하지 않은 것을 선택하고 IIS는 후자(FAST-CGI)를 선택합니다. Xin 형제님이 옳다는 것은 설명하지 않겠습니다.

Script House 편집자는 다음과 같이 덧붙였습니다. 2003 시스템에서는 일반적으로 isapi를 사용하여 로드합니다. 2008 이상 시스템에서는 fast-cgi를 사용합니다.

코드 복사 코드는 다음과 같습니다.

TS는 스레드 안전성을 의미하며, 이 버전은 일반적으로 IIS가 ISAPI 모드로 로드될 때 선택됩니다.
NTS는 None-Thread Safe를 의미합니다. 일반적으로 이 버전은 더 나은 성능을 제공하는 빠른 CGI 모드에서 실행될 때 선택됩니다.

2000년 10월 20일에 출시된 PHP 3.0.17의 첫 번째 Windows 버전부터 모든 버전은 스레드로부터 안전합니다. 이는 다중 프로세스 작업 방식을 사용하는 Linux/Unix 시스템과 달리 Windows 시스템은 다중 프로세스 작업 방식을 사용하기 때문입니다. 프로세스 작업 방법 스레드가 작동하는 방식. IIS에서 CGI 모드로 PHP를 실행하면 속도가 매우 느려집니다. 이는 CGI 모드가 다중 스레드가 아닌 다중 프로세스를 기반으로 하기 때문입니다. 일반적으로 ISAPI 모드에서 실행되도록 PHP를 구성합니다. ISAPI는 훨씬 빠른 다중 스레드 모드입니다. 그러나 일반적으로 사용되는 많은 PHP 확장은 Linux/Unix의 다중 프로세스 사고를 기반으로 개발되었습니다. 이러한 확장이 ISAPI 모드에서 실행되면 잘못되어 IIS가 다운됩니다. 따라서 CGI 모드는 IIS에서 PHP를 실행하는 가장 안전한 방법이지만 CGI 모드는 각 HTTP 요청에 대해 전체 PHP 환경을 다시 로드하고 언로드해야 하며 그 소비가 엄청납니다.

IIS에서 PHP의 효율성과 보안을 고려하기 위해 Microsoft는 FastCGI 솔루션을 제공합니다. FastCGI를 사용하면 새로운 요청이 있을 때마다 프로세스를 다시 여는 대신 PHP 프로세스를 재사용할 수 있습니다. 동시에 FastCGI에서는 여러 프로세스를 동시에 실행할 수도 있습니다. 이는 CGI 프로세스 모드의 과도한 사용 문제를 해결할 뿐만 아니라 CGI 프로세스 모드에 스레드 안전 문제가 없다는 사실도 활용합니다.

따라서 ISAPI를 사용하여 PHP를 실행하는 경우 Thread Safe(스레드 안전) 버전을 사용해야 하며 FastCGI 모드를 사용하여 PHP를 실행하는 경우 스레드 안전 검사를 사용할 필요가 없으며 None Thread Safe(NTS, non -스레드 안전) 버전은 효율성을 더 향상시킬 수 있습니다.

64비트 및 32비트 선택 문제

시스템이 64비트라면 64비트를 선택하세요. 시스템이 32비트라면 32비트를 선택하세요. Xin님.

Script House 편집자는 다음과 같이 덧붙였습니다. 많은 경우 iis에 로드해야 하는 모든 소프트웨어가 64비트라고 보장할 수 없으며 일부 소프트웨어는 32비트 형식과 호환되어야 합니다.

원래 웹사이트 주소는 다음과 같습니다: http://cnmaizi.com/tech/php-version.html
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!