>백엔드 개발 >PHP 문제 >PHP를 실행하는 세 가지 방법

PHP를 실행하는 세 가지 방법

藏色散人
藏色散人원래의
2020-08-13 09:10:175477검색

php의 세 가지 실행 방법은 다음과 같습니다. 1. HTTPServer의 내장 모듈을 통해 구현됩니다. 2. CGI를 통해 구현됩니다.

PHP를 실행하는 세 가지 방법

추천: "PHP 비디오 튜토리얼"

PHP 세 가지 작동 모드

세 가지 작동 모드: mod_php5, cgi, fast-cgi

1.

예를 들어 Apache의 내장 mod_perl과 유사한 Apache의 mod_php5는 Perl을 지원할 수 있습니다.

2 CGI를 통해 구현됩니다

이 방법의 단점은 성능이 좋지 않다는 것입니다. 왜냐하면 서버가 이러한 스크립트를 발견할 때마다 스크립트를 실행하고 결과를 서버에 반환하기 위해 스크립트 파서를 다시 시작해야 하기 때문입니다. 반면에 이 방법은 거의 사용되지 않습니다.

3. 최신 버전은 FastCGI입니다.

소위 FastCGI는 CGI를 개선한 것입니다. 일반적으로 C/S 구조를 채택합니다. 일반적으로 스크립트 프로세서는 하나 이상의 데몬 프로세스를 시작합니다. HTTPServer가 스크립트를 발견할 때마다 실행을 위해 FastCGI 프로세스로 직접 전달된 다음 결과(일반적으로 HTML)가 반환됩니다. .

이 방법의 작은 문제는 트래픽이 많은 빈번한 요청이 발생할 때 스크립트 프로세서의 데몬 프로세스가 과부하되어 매우 느려지거나 심지어 메모리 누수가 발생할 수 있다는 것입니다.

그러나 Apache와 비교하면 내장된- 모듈 접근 방식은 서버와 스크립트 파서가 완전히 분리되어 있고 각각 고유한 책임을 갖고 있기 때문에 서버가 더 이상 비대해지지 않고 정적 파일에 응답하거나 동적 스크립트 파서의 결과를 사용자 클라이언트에 반환하는 데 집중할 수 있다는 것입니다.

그래서 Apache의 내장 모듈 방식에 비해 성능이 훨씬 향상되는 경우도 있습니다.

아파치+mod_php보다 5~10배 빠를 수 있다는 테스트를 하신 분들도 계십니다.

3.1. FastCGI 공통 모드:

lightppd+spawn-fcgi

nginx+PHP-FPM

a 위의 두 가지 모두 FastCGI를 사용하여 PHP를 지원하므로 HTTPServer는 완전히 해방되어 더 나은 동시 처리에 응답할 수 있습니다. .

b.spawn-fcgi는 lighttpd의 일부이므로 lighttpd가 설치되면 일반적으로spawn-fcgi가 PHP를 지원하는 데 사용됩니다. 그러나 현재 일부 사용자는 높은 동시 액세스 중에 위에서 언급한 것처럼 lighttpd의 spwan-fcgi가 나타난다고 말합니다. . 메모리 누수로 인해 fastcgi가 자동으로 다시 시작됩니다.

  nginx는 lighttpd와 달리 fastcgi(spawn-fcgi)가 함께 제공되므로 완전히 가볍습니다. PHP를 구문 분석하려면 타사 FastCGI 프로세서를 사용해야 하므로 실제로 nginx는 매우 유연하게 연결될 수 있습니다. PHP 구문 분석을 수행하기 위한 타사 구문 분석 프로세서.

  nginx는 spwan-fcgi를 사용할 수 있습니다(lighthttpd는 함께 설치해야 하지만 nginx의 경우 포트를 피해야 합니다. 일부 오래된 블로그에는 이와 관련된 설치 튜토리얼이 있습니다). 그러나spwan-fcgi에는 위에서 언급한 결함이 있어 사용자가 점차적으로 발견됨에 따라 이제 nginx+spawn-fcgi 조합의 사용이 점차 줄어듭니다.

c.spawn-fcgi의 결함으로 인해 새로운 타사(현재도 가까운 시일 내에 PHP 코어에 추가하기 위해 열심히 노력하고 있다고 들었습니다) PHP-라는 PHP용 FastCGI 프로세서가 등장했습니다. FPM. Spawn-fcgi와 비교하면 다음과 같은 장점이 있습니다.

PHP-FPM은 PHP용 패치로 개발되었기 때문에 설치 시 PHP 소스 코드와 함께 컴파일해야 합니다. 즉, PHP 코어로 컴파일된다는 의미입니다. 따라서 성능 측면에서는 더 좋습니다.

동시에 높은 동시성을 처리하는 데 있어서spawn-fcgi보다 낫습니다. 적어도 fastcgi 프로세서를 자동으로 다시 시작하지는 않습니다.

따라서 위에서 언급한 것처럼 nginx의 가볍고 유연성으로 인해 현재 성능이 우수하며 점점 더 많은 사람들이 nginx+PHP/PHP-FPM 조합을 사용하고 있습니다.

위 내용은 PHP를 실행하는 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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