목차
Apache는 PHP 요청을 처리합니다" >Apache는 PHP 요청을 처리합니다
백엔드 개발 PHP 문제 PHP의 fastcgi 및 php-fpm에 대한 간략한 토론

PHP의 fastcgi 및 php-fpm에 대한 간략한 토론

Jun 15, 2021 pm 05:27 PM
php

이 기사에서는 PHP의 fastcgi 및 php-fpm에 대해 간략하게 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

PHP의 fastcgi 및 php-fpm에 대한 간략한 토론

PHP 개발에 있어서는 fastcgi와 php-fpm이 반드시 언급될 것입니다. 이 두 가지는 PHP 성능에 중요한 역할을 합니다. 제가 바이두에서 인턴 생활을 하면서 사용한 ODP 환경은 php-fpm이었지만, 전혀 아는 바가 없었고, PHP에 대한 전체적인 개념도 막연한 상태였습니다. 예정보다 빨리 작업이 이틀만에 완료되었습니다. 이번 기회에 PHP에 대해 좀 더 자세히 알아봤습니다.

웹 서버

PHP는 웹 개발을 위해 특별히 설계된 서버 측 언어입니다. 일반적인 PHP 아키텍처에는 LAMP 및 LNMP가 포함됩니다.

PHP의 fastcgi 및 php-fpm에 대한 간략한 토론

Apache는 PHP 요청을 처리합니다

mod_php mode

요청이 Apache로 전송되고, Apache가 PHP를 구문 분석하고 처리하여 그 결과를 클라이언트에 반환하는 것을 볼 수 있습니다. LAMP 아키텍처를 사용할 때 Apache 구성 파일 httpd.conf

加入如下两句
LoadModule phpx_module PHP_ROOT/phpxapache2_2.dllAddType appliaction/x-httpd-php.php
将下面语句做如下修改<IfModule dir_module> DirectoryIndex index.html</IfModule>改为 <IfModule dir_module> DirectoryIndex index.html index.htm index.php index.phtml</IfModule>
로그인 후 복사

을 수정하고 LoadModule을 사용하여 phpx_module을 로드해야 합니다(x는 PHP 버전 번호). PHP는 Apache의 하위 모듈로 실행되는 것으로 이해될 수 있습니다. PHP에 액세스하도록 요청하면 Apache는 PHP 코드를 구문 분석하기 위해 phpx_module을 호출합니다.

php_module은 PHP 코드를 어떻게 구문 분석하나요? - 사피를 통해.

Apache, PHP, sapi의 관계는 아래와 같습니다.

PHP의 fastcgi 및 php-fpm에 대한 간략한 토론

sapi는 PHP가 데이터를 위해 다른 애플리케이션과 상호 작용할 수 있도록 소켓과 유사하게 외부 통신을 위한 인터페이스를 제공하는 중간 계층입니다. PHP는 Apache 및 Nginx용 php_module, IIS용 ISAPI 등 다양한 sapi를 제공합니다.

PHP를 호출하는 Apache의 실행 프로세스:

Apache -> httpd -> php_module -> sapi -> PHP

간단히 말하면 웹 서버가 php_module을 통해 PHP를 구문 분석하고 실행하는 모드입니다. .

mod_fastcgi 모드

PHP sapi의 또 다른 방법은 cgi 모드를 제공하는 것입니다. 이제 cgi는 fastcgi로 대체되었습니다.

소위 cgi는 공통 게이트웨이 인터페이스입니다. 웹 서버가 요청을 받으면 이를 cgi 프로그램(예: PHP의 fastcgi)에 넘겨주고(PHP 구문 분석) 결과를 웹 서버에 전달하면 웹 서버는 요청을 클라이언트에 반환합니다.

cgi의 단점은 각 요청에 시작 및 종료 프로세스가 있다는 점입니다. 이는 많은 동시 요청의 경우 완료되는 많은 비판을 받는 분기 및 실행 모드입니다.

fastcgi의 탄생은 이러한 단점을 보완합니다. 요청 대기를 일찍 시작하고 요청에 응답한 후 종료하지 않고 계속해서 다음 요청을 기다리는 것이 원칙입니다.

fastcgi를 활용하는 실행 모드를 mod_fastcgi라고 합니다.

mod_php와 mod_fastcgi의 차이점을 비교해보세요. 전자는 PHP를 웹 서버의 모듈로 실행하며 PHP는 서버와 고도로 통합되어 있습니다. 후자는 fastcgi를 중간 프로세스로 사용하고, PHP와 웹 서버는 요청과 응답을 완료하는 데에만 fastcgi를 사용합니다.

PHP의 fastcgi 및 php-fpm에 대한 간략한 토론

mod_php 모드

mod_php 모드에서는 Apache가 요청을 수락할 때마다 PHP에 연결하여 sapi를 통해 요청을 완료하는 프로세스를 생성합니다. 견딜 수 있습니다.

PHP의 fastcgi 및 php-fpm에 대한 간략한 토론

mod-fastcgi mode

이 그림에서 볼 수 있듯이, 요청이 도착할 때마다 httpd는 sapi를 호출하여 요청을 PHP에 전달하고 완료 후에도 종료하지 않고 다음 요청을 기다립니다. 동시성 성능이 크게 향상되었습니다.

php-fpm

칼을 갈고 나무를 자르세요. 이전 설명은 단지 php-fpm을 소개하기 위한 것입니다. php-fpm은 무엇을 합니까? 실제로 fastcgi를 지원하는 데 사용됩니다.

fastcgi는 플랫폼 독립적이고 언어 독립적인 인터페이스 구현입니다. 웹 서버와의 통신을 완료하려면 규정된 방법에 따라 다른 언어로 구현하기만 하면 됩니다. 위 그림에 표시된 php-cgi는 PHP와 함께 제공되는 fastcgi 관리자입니다.

인터넷에서 볼 수 있는 php-cgi에는 두 가지 주요 문제가 있습니다.

  • php-cgi가 php.ini를 변경한 후 새 php.ini를 적용하려면 php-cgi를 다시 시작해야 하며 다시 시작할 수 없습니다. 원활하게.

  • php-cgi를 직접 종료하면 PHP가 실행되지 않습니다.

php-fpm은 위의 단점을 완벽하게 해결한 fastcgi 전용 관리자입니다.

간단히 말하면 php-fpm의 역할은 PHP에서 fastcgi를 구체적으로 관리하여 PHP가 웹 서버와 안전하고 안정적으로 협력하여 높은 동시성 조건에서 요청 응답 프로세스를 완료할 수 있도록 하는 것입니다.

추천 학습: php 비디오 튜토리얼

위 내용은 PHP의 fastcgi 및 php-fpm에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++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

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

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

cakephp4에서 날짜와 시간을 다루기 위해 사용 가능한 FrozenTime 클래스를 활용하겠습니다.

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

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

CakePHP 유효성 검사기 만들기 CakePHP 유효성 검사기 만들기 Sep 10, 2024 pm 05:26 PM

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

CakePHP 로깅 CakePHP 로깅 Sep 10, 2024 pm 05:26 PM

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

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

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

CakePHP 빠른 가이드 CakePHP 빠른 가이드 Sep 10, 2024 pm 05:27 PM

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

See all articles