PHP에서 cgi와 fcgi의 차이점은 무엇입니까
PHP에서 cgi와 fcgi의 차이점: cgi는 공통 게이트웨이 인터페이스를 의미하는 "common Gateway 인터페이스"의 약어이고, fcgi는 빠른 공통 게이트웨이를 의미하는 "빠른 공통 게이트웨이 인터페이스"의 약어입니다. 인터페이스. "php-cgi"는 CGI 프로토콜의 구현이고 "PHP-FPM"은 FCGI 프로토콜의 구현입니다.
이 기사의 운영 환경: Windows 10 시스템, PHP 버전 8.1, Dell G3 컴퓨터
PHP에서 cgi와 fcgi의 차이점은 무엇입니까?
CGI: 공통 게이트웨이 인터페이스 공통 게이트웨이 인터페이스
FCGI : 빠른 공통 게이트웨이 인터페이스 빠른 공통 게이트웨이 인터페이스
php-cgi는 CGI 프로토콜의 구현이고 PHP-FPM은 FCGI 프로토콜의 구현입니다.
CGI는 nginx와 같은 웹 서버와 PHP와 같은 백엔드 동적 스크립팅 언어 간의 통신을 위한 프로토콜 인터페이스입니다.
지식 확장
1. 시나리오:
브라우저는 nginx와 같은 웹 서버를 요청합니다. 요청이 정적 index.html인 경우 nginx가 이를 직접 반환할 수 있습니다. 그러나 요청이 idex.php인 경우 nginx는 구성에 따라 정적 리소스가 아니라는 것을 확인하고 백엔드 서비스를 요청해야 합니다. 그렇다면 nginx가 백엔드 서비스를 요청할 때 어떤 형식과 어떤 데이터를 백엔드 서비스로 보내야 할까요? CGI는 형식과 데이터를 정의하는 프로토콜입니다.
2. CGI 프로토콜의 단점:
CGI 프로토콜은 백엔드 서비스를 요청할 때마다 CGI 프로토콜을 구현하는 프로그램을 시작해야 합니다. 여기에는 PHP 파서가 있습니다. PHP 파서는 PHP.ini 파일을 구문 분석하고, 초기화 작업을 수행하고, 요청을 처리하고, 결과를 반환합니다. 각 요청을 다시 초기화해야 하는데 이는 너무 중복되는 작업입니다. 그래서 FCGI가 탄생했습니다.
PHP는 해석 언어이기 때문에 PHP 코드를 해석하려면 해석기가 필요합니다.
3. FCGI의 장점:
FCGI 프로토콜은 먼저 PHP.ini 파일을 구문 분석하고 초기화 작업을 수행하는 데 사용되는 마스터를 시작합니다. 여러 작업자를 시작하면 작업자는 특정 요청을 처리하는 데 사용됩니다. 이는 초기화와 특정 요청 처리를 분리합니다. 여기에도 마스터와 워커를 관리하는 프로그램이 필요하므로 PHP-FPM이 등장했습니다.
FCGI는 C/S 아키텍처를 채택합니다. 웹 서버를 스크립트 파싱 서버와 분리하세요. 웹 서버가 정적 리소스만 처리하도록 하고 백엔드 스크립트 구문 분석 서버에서 반환된 데이터를 브라우저에 반환합니다.
웹 서버 nginx는 PHP 프로그램 등 외부 프로그램의 직접 호출이나 파싱을 지원하지 않으므로 CGI 인터페이스를 통해 호출해야 합니다. 이는 실제로 PHP-FPM인 래퍼를 형성하기 위해 CGI 캡슐화를 필요로 합니다. nginx는 PHP-FPM을 호출하고, PHP-FPM은 백엔드 PHP 코드를 호출한 다음, PHP-FPM이 결과를 nginx에 반환합니다.
이제 PHP-FPM이 PHP 코어에 통합되었습니다.
PHP-FPM과 nginx는 정적 리소스를 처리하고 동적 요청을 전달해야 하는 프런트 엔드 nginx의 부담을 줄이기 위해 종종 다른 서버에 배포됩니다.
그리고 FCGI도 CGI보다 안전합니다.
4. CGI 프로토콜 PHP-CGI 구현
php.ini 파일이 수정되면 PHP-CGI가 원활하게 전환되지 않습니다. 즉, 이러한 새 구성을 사용하려면 PHP-CGI 프로그램을 다시 시작해야 합니다.
5. FCGI 프로토콜 PHP-FPM
구현 php.ini 파일을 수정하면 PHP-FPM이 원활하게 전환됩니다. 수정 전 워커의 경우 요청 처리 후 파기되며, 새로 생성된 워커는 새로운 구성을 사용할 수 있습니다. 이는 또한 원활한 전환을 달성합니다.
또한 PHP-CGI 프로세스가 중단되면 PHP를 실행할 수 없습니다. PHP-FPM에는 이 문제가 없으며 데몬은 하위 프로세스를 원활하게 다시 시작합니다.
PHP-FPM이 등장하기 전에는 실제로 lighthttpd에서 개발된spawn-fcgi가 있었습니다. PHP-FPM은 초기화 중에 여러 작업자를 생성할 수 있으며 작업자가 유휴 상태인 경우 작업자를 재활용할 수 있습니다.
spawn-fcgi는 메모리 누수를 일으키거나 동시성이 높을 때 FCGI를 자동으로 다시 시작할 수도 있습니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP에서 cgi와 fcgi의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
