最近在使用vagrant搭建php的开发环境。 其中在搭建调试过程中,发现了很多问题(毕竟之前一直在用集成开发环境,一键安装搞定。。)。 进而调查了下CGI FastCGI 与 PHP-FPM 现总结如下:
브라우저를 사용하여 index.php에 액세스했을 때 정확히 어떤 경험을 하셨나요?
이 사진을 읽고 나니 조금 더 선명해졌나요? 아래에서 자세히 설명하겠습니다.
index.php에 액세스하기 위해 URL 주소를 입력하면 브라우저(클라이언트)가 서버(nginx, apache 등)에 요청을 보내지만 서버는 php 등 html과 같은 정적 리소스만 처리할 수 있습니다. , jsp 등 동적 리소스는 서버에서 처리할 수 없으므로 이를 처리하려면 특정 파서가 필요합니다. 그러면 서버와 파서는 어떻게 통신(접촉)합니까? CGI를 사용하며 통신 후에는 PHP-FPM을 사용하여 php 파일을 파싱해야 하며, 파싱이 완료된 후 서버에서 브라우저(클라이언트)로 반환됩니다. 이렇게 하면 요청 프로세스가 완료됩니다.
그래서:
CGI는 웹 서버와 웹 애플리케이션 간의 데이터 교환을 위한 프로토콜입니다.
FastCGI: CGI와 동일하며 통신 프로토콜이지만 CGI보다 효율성이 일부 최적화되었습니다.
PHP-CGI: Web Server에서 제공하는 CGI 프로토콜에 대한 PHP(Web Application)의 인터페이스 프로그램입니다.
PHP-FPM: PHP(웹 애플리케이션)에서 웹 서버에 제공하는 FastCGI 프로토콜용 인터페이스 프로그램이며 비교적 지능적인 작업 관리 기능도 제공합니다.
참고자료
CGI, FastCGI 및 PHP-FPM의 관계 그림
관련 권장 사항:
php-fpm - php_fpm 실행의 구성 파일 경로를 확인하는 방법은 무엇입니까?
위 내용은 CGI, FastCGI 및 PHP_FPM의 관계는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!