이 글은 주로 PHP의 실행 과정과 관련 개념을 소개하고 있습니다. 이제 필요한 친구들과 함께 참고할 수 있습니다.
다양한 SAPI 구현의 차이점을 제쳐두고 PHP 프로그램의 실행 프로세스는 다음과 같이 간단히 요약할 수 있습니다.
# 🎜🎜## 🎜🎜#프로그램 시작, Zend 엔진 및 핵심 구성 요소 초기화
#🎜🎜 ##🎜🎜 #요청 수신, 활성화 확장(RINIT)
PHP 스크립트 구문 분석 및 실행
PHP 프로그램의 수명 주기를 이해하는 것은 PHP 발전을 위한 필수 프로세스이며 개발자가 문제를 빠르게 찾는 데 도움이 될 수도 있습니다. 예를 들어 스크립트 리포팅 기능이 없으면 CLI/CGI 모드에서 확장이 없거나 로딩 오류가 있을 가능성이 매우 높으며,
이 어떻게 종료되더라도 실행입니다. 스크립트가 반드시 프로세스 종료를 의미하지는 않습니다. 스크립트가 메모리에 상주하여 컴파일된 후에는 RINIT 및 RSHUTDOWN이 반복적으로 실행되지 않습니다. 이는 다른 운영 모드 등에 비해 CLI 프레임워크의 성능 향상 포인트입니다.CGI/FastCGI:网关协议,与语言无关,所以与PHP关系也不大。两者的区别是FastCGI可以独立于web服务器,运行FastCGI协议的程序变成web服务器的内容提供方(上游)。另外与web服务器解耦后,用FastCGI协议交互的进程具有性能好、安全稳定、支持分布式等优点; php-cgi:实现FastCGI协议的PHP解析器,不能平滑重启和热加载; FPM:PHP官方的FastCGI进程管理器,可执行程序为php-fpm;支持平滑重启、热加载,运行稳定;其管理对象不是php-cgi进程,两者没什么关系。몇 가지 개념만 비교적 구별하기 쉽습니다. 실제로 개발자를 혼란스럽게 하는 것은 다음 네 가지 개념 그룹의 조합입니다.
pconnect
也是徒劳的,脚本一执行完资源就释放掉;exit/die
SAPI. 일반적인 프로토콜은 apache2handler, cli, fpm-fcgi
프로그램. 즉 php-cgi와 php-fpm입니다.
웹 서버는 대부분의 사람들에게 더 친숙하므로 다른 개념과의 관계에 대해 이야기해 보겠습니다. Apache httpd를 사용하면 90% 이상의 경우가 실행됩니다. 모듈 방식의 PHP 스크립트이므로 SAPI의 apache2handler와 관련이 있으며 Nginx를 사용할 때 요청의 90%가 FastCGI 프로토콜을 통해 FPM으로 전달되는 다른 개념(CGI나 FastCGI 프로토콜 모두)과 관련이 없습니다. , SAPI의 fpm과 관련이 있습니다. fcgi의 세 가지 개념, 프로토콜의 FastCGI, 프로그램의 php-fpm은 서로 연관되어 있으며 다른 개념과는 아무런 관련이 없습니다.
이 글에서는 PHP 프로그램의 아키텍처와 실행 프로세스를 간략하게 검토하고 혼동되기 쉬운 몇 가지 개념을 소개합니다.
위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
위 내용은 PHP 실행 프로세스 및 관련 개념의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!