1. PHP 작동 모드:
PHP의 두 가지 작동 모드는 WEB 모드와 CLI 모드입니다. 모드에 관계없이 PHP는 동일하게 작동하며 SAPI로 실행됩니다.
1. 터미널에 php 명령을 입력하면 CLI가 사용됩니다.
요청을 완료하기 위해 PHP를 지원하는 웹서버와 같습니다. 요청이 완료되면 제어권이 터미널로 반환됩니다.
2. Apache나 다른 웹 서버를 호스트로 사용할 때 요청이 오면 PHP는 요청 완료를 지원합니다. 일반적으로:
다중 프로세스(보통 PHP 요청을 처리하기 위해 Apache 모듈로 컴파일됨)
다중 스레드 모드
간단한 실행 프로세스: # 🎜 🎜#
1. Apache가 시작될 때 PHP가 실행됩니다. 2. PHP는 mod_php5.so 모듈(특히 SAPI, 서버 애플리케이션 프로그래밍 인터페이스)을 통해 연결됩니다. 🎜🎜#3. PHP에는 커널, Zend 엔진, 확장 계층의 세 가지 모듈이 있습니다.4 PHP 커널은 요청, 파일 스트림, 오류 처리 및 기타 관련 작업을 처리하는 데 사용됩니다. 5. Zend 엔진(ZE)은 소스 파일을 기계어로 변환한 다음 이를 가상 머신에서 실행하는 데 사용됩니다.
6 확장 계층은 PHP가 일부 작업을 수행하는 데 사용하는 함수, 클래스 라이브러리 및 스트림의 집합입니다. 특정 작업. 예를 들어 MySQL 데이터베이스에 연결하려면 MySQL 확장이 필요합니다.
7. ZE가 프로그램을 실행할 때 여러 확장에 연결해야 할 수도 있습니다. 이때 ZE는 확장에 제어권을 넘겨주고 반환합니다. #🎜 🎜#8. 마지막으로 ZE는 프로그램 실행 결과를 PHP 커널로 반환하고, 그 결과를 SAPI 레이어로 전송하고 최종적으로 브라우저로 출력합니다.
2. PHP 실행의 여러 단계:
SAPI는 다음 단계를 통해 PHP를 실행합니다.
2. 요청 초기화 단계(Request init):
클라이언트의 요청을 받은 후 각 Extension의 PHP_RINIT_FUNCTION에 있는 메소드를 호출하여 PHP 스크립트의 실행 환경을 초기화합니다. 3. PHP 스크립트 실행
4. 종료 요청:
이때 각 확장의 PHP_RSHUTDOWN_FUNCTION 메서드를 호출하여 요청 사이트를 정리하고 ZE는 변수와 메모리를 재활용하기 시작합니다.
5. 모듈 종료:
웹 서버가 종료되거나 명령줄 스크립트가 실행되어 종료되면 확장 소스 코드의 PHP_MSHUTDOWN_FUNCTION 메서드가
3 으로 호출됩니다. 다양한 상황 SAPI 수명주기.
1. 단일 프로세스 SAPI 수명 주기. (CGI)
3. 멀티 스레드 SAPI 수명 주기. (FastCGI 또는 MPM 작업 모드의 단일 프로세스)
멀티 스레딩 모드는 다중 프로세스의 프로세스와 유사합니다. 이 모드에서는 하나의 서버 프로세스만 실행되지만 많은 스레드가 동시에 실행되므로 모듈 초기화 및 모듈 종료만 일부 줄일 수 있습니다. 한 번만 실행하면 되며 일부 전역 변수는 한 번만 초기화하면 됩니다. 스레드의 고유한 특성으로 인해 요청 간에 일부 데이터를 편리하게 공유할 수 있습니다.
PHP 관련 기술 기사를 더 보려면 PHP Tutorial 칼럼을 방문하여 알아보세요!
위 내용은 PHP 수명주기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!