PHP 바 텀 운영 체제 와 작업 원리 에 대한 상세 한 설명

최근 에 서버 를 만 들 었 는데 갑자기 lamp 사이 에 어떻게 일 하 는 지,아니면 어떻게 연결 되 는 지 느낌 이 들 었 어 요.평소에 프로그램 만 쓰 고 그들 사이 의 작업 원 리 를 다시 생각해 본 적 이 없다.
PHP 하부 작업 원리

그림 1 php 구조
그림 에서 보 듯 이 php 는 아래 에서 위로 4 층 체계 이다
① Zend 엔진
Zend 는 전체적으로 순수 c 로 이 루어 집 니 다.phop 의 커 널 부분 입 니 다.phop 코드 번역(품사,문법 해석 등 일련의 컴 파일 과정)을 opcode 의 처 리 를 수행 하고 해당 하 는 처리 방법 을 실현 하 며 기본 적 인 데이터 구조(예 를 들 어 hashtable,oo),메모리 배분 과 관리,해당 하 는 api 방법 을 외부 호출 에 제공 하 는 것 이 모든 핵심 입 니 다.모든 외곽 기능 은 zend 를 중심 으로 이 루어 집 니 다.
②Extensions
zend 엔진 을 둘러싸 고 extensions 는 구성 요소 식 방식 으로 각종 기초 서 비 스 를 제공 합 니 다.우리 가 흔히 볼 수 있 는 각종 내장 함수(예 를 들 어 array 시리즈),표준 라 이브 러 리 등 은 모두 extension 을 통 해 이 루어 집 니 다.사용자 도 수요 에 따라 자신의 extension 을 실현 하여 기능 확장,성능 최적화 등 목적 을 달성 할 수 있 습 니 다(예 를 들 어 스티커 가 사용 하고 있 는 phop 중간 층,부 텍스트 해석 은 extension 의 전형 적 인 응용 이다.
③Sapi
Sapi 는 모두 Server Application Programming Interface,즉 서버 응용 프로 그래 밍 인터페이스 라 고 부 릅 니 다.sapi 는 일련의 갈고리 함 수 를 통 해 phop 이 외곽 과 데 이 터 를 교환 할 수 있 도록 합 니 다.이것 은 phop 이 매우 우아 하고 성공 적 인 디자인 입 니 다.sapi 를 통 해 phop 자체 와 상층 응용 을 결합 시 키 는 데 성공 하 였 습 니 다.phop 는 서로 다른 응용 을 어떻게 호 환 하 는 지 고려 하지 않 을 수 있 습 니 다.응용 자체 도 자신의 특징 에 따라 서로 다른 처리 방식 을 실현 할 수 있다.뒤에 sapi 섹 션 에서 소개 합 니 다.
④ 상부 응용
이것 이 바로 우리 가 평소에 작성 한 phop 프로그램 입 니 다.서로 다른 sapi 방식 으로 다양한 응용 모델 을 얻 을 수 있 습 니 다.예 를 들 어 웹 서버 를 통 해 웹 응용 을 실현 하고 명령 행 에서 스 크 립 트 로 실행 하 는 등 입 니 다.
구조 사상:
엔진(Zend)+구성 요소(ext)모드 로 내부 결합 감소
중간 층(sapi)은 웹 server 와 phop 을 차단 합 니 다.
**************************************************************************
phop 이 차 라면...
차 의 틀 은 php 자체 입 니 다.
젠 드 는 차 의 엔진(엔진)이다.
Ext 아래 의 각종 구성 요 소 는 바로 차 의 바퀴 입 니 다.
사 피 는 도로 라 고 볼 수 있 고 차 는 서로 다른 유형의 도 로 를 달 릴 수 있다.
phop 프로그램의 실행 은 자동차 가 도 로 를 달 리 는 것 이다.
따라서 성능 이 우수한 엔진+적당 한 바퀴+정확 한 활주로 가 필요 합 니 다.
Apache 와 php 의 관계
아파 치가 php 에 대한 해석 은 여러 Module 의 php Module 을 통 해 이 루어 진다.

php 를 최종 적 으로 Apache 시스템 에 통합 하려 면 Apache 에 필요 한 설정 이 필요 합 니 다.여기,우 리 는 php 의 mod 로php 5 SAPI 운영 모델 을 예 로 들 어 설명 하고 SAPI 라 는 개념 뒤에 도 자세히 설명 할 것 입 니 다.
우리 가 설치 한 버 전이 Apache 2 와 Php 5 라 고 가정 하면 Apache 의 주 프로필 http.conf 를 편집 하고 다음 줄 의 내용 을 추가 해 야 합 니 다.
Unix/Linux 환경 에서:
LoadModule php5_module modules/mod_php5.so
AddType application/x-httpd-php .php
주:그 중 modules/modphp 5.so 는 X 시스템 환경 에서 modphp 5.so 파일 의 설치 위치 입 니 다.
Windows 환경 에서:
LoadModule php5_module d:/php/php5apache2.dll
AddType application/x-httpd-php .php
주:그 중에서 d:/php/php5apache2.dll 은 윈도 환경 에서 php5apache2.dll 파일 의 설치 위치 입 니 다.
이 두 설정 은 아파 치 서버 에 게 나중에 받 은 Url 사용자 요청 을 알려 주 는 것 입 니 다.php 를 접미사 로 하면 php 5 를 호출 해 야 합 니 다.모듈 모듈(modphp 5.so/php 5 apache2.dll)처리 합 니 다.
Apache 의 수명 주기

Apach 요청 처리 프로 세 스

아파 치 처리 요청
Apache 가 순환 을 요청 하 는 11 단계 에서 어떤 일 을 했 나 요?
1,Post-Read-Request 단계
정상 적 인 요청 처리 프로 세 스에 서 이것 은 모듈 이 갈 고 리 를 삽입 할 수 있 는 첫 번 째 단계 이다.요청 을 빨리 처리 하려 는 모듈 에 서 는 이 단 계 를 이용 할 수 있다.
2.URI 번역 단계
아파 치 는 이 단계 의 주요 작업:요청 한 URL 을 로 컬 파일 시스템 에 표시 합 니 다.모듈 은 이 단계 에 갈 고 리 를 삽입 하여 자신의 매 핑 논 리 를 실행 할 수 있다.mod_alias 는 이 단 계 를 이용 하여 일한다.
3、Header Parsing 단계
아파 치 는 이 단계 의 주요 작업:요청 한 머리 를 검사 합 니 다.모듈 은 요청 처리 절차 의 어느 점 에서 든 머리 를 검사 하 는 작업 을 수행 할 수 있 기 때문에 이 갈 고 리 는 거의 사용 되 지 않 습 니 다.mod_setenvif 는 이 단 계 를 이용 하여 일 하 는 것 이다.
4.액세스 제어 단계
아파 치 는 이 단계 의 주요 작업:설정 파일 에 따라 요청 한 자원 에 접근 할 수 있 는 지 확인 합 니 다.아파 치 의 표준 논 리 는 명령 을 허용 하고 거부 했다.mod_authz_host 는 이 단 계 를 이용 하여 일 합 니 다.
5.인증 단계
Apache 는 이 단계 의 주요 작업:설정 파일 이 설정 한 정책 에 따라 사용 자 를 인증 하고 사용자 이름 영역 을 설정 합 니 다.모듈 은 이 단계 에 갈 고 리 를 삽입 하여 인증 방법 을 실현 할 수 있다.
6.인증 단계
아파 치 는 이 단계 의 주요 작업:설정 파일 에 따라 인 증 된 사용자 가 요청 한 동작 을 수행 할 수 있 는 지 확인 합 니 다.모듈 은 이 단계 에 갈 고 리 를 삽입 하여 사용자 권한 관 리 를 실현 하 는 방법 을 실현 할 수 있다.
7、MIME Type Checking 단계
아파 치 는 이 단계 의 주요 작업:자원 을 요청 하 는 MIME 형식의 관련 규칙 에 따라 사용 할 내용 처리 함 수 를 판정 합 니 다.표준 모듈 modnegotiation 과 mod미미 가 이 고 리 를 이 루 었 다.
8、FixUp 단계
이것 은 모듈 이 콘 텐 츠 생 성기 전에 필요 한 처리 절 차 를 실행 할 수 있 도록 통용 되 는 단계 이다.와 PostRead_Request 와 유사 합 니 다.이것 은 모든 정 보 를 포착 할 수 있 는 갈고리 이자 가장 자주 사용 하 는 갈고리 입 니 다.
9.응답 단계
Apache 는 이 단계 의 주요 작업:클 라 이언 트 로 돌아 가 는 내용 을 생 성하 고 클 라 이언 트 에 게 적절 한 답장 을 보 냅 니 다.이 단 계 는 전체 처리 절차 의 핵심 부분 이다.
10.Logging 단계
Apache 는 이 단계 의 주요 작업:클 라 이언 트 에 게 보 낸 후 업 무 를 기록 합 니 다.모듈 이 아파 치 의 표준 로그 기록 을 수정 하거나 바 꿀 수 있 습 니 다.
11、클 린 업 단계
Apache 는 이 단계 의 주요 작업:이번 요청 업무 처리 가 끝 난 후에 남 겨 진 환경 을 정리 합 니 다.예 를 들 어 파일,디 렉 터 리 처리 또는 Socket 의 닫 기 등 은 Apache 가 요청 한 마지막 단계 입 니 다.
LAMP 구조:

아래 에서 위로 4 층:
① liunx 는 운영 체제 의 밑바닥 에 속한다.
② apache 서버,차 서버,커 뮤 니 케 이 션 Liux 와 PHP
③ php:서버 프로 그래 밍 언어 로 phpmodule 모듈 과 apache 연결
④ my sql 및 기타 웹 서비스:응용 서비스 에 속 하 며,PHP 의 Extensions 외 장 모듈 을 통 해 my sql 과 연 결 됩 니 다.
안 드 로 이 드 시스템 구성 도
lamp 과 안 드 로 이 드 의 구조 도 를 비교 해 보면 lamp 구조 와 비슷 한 것 같 습 니 다.저 는 안 드 로 이 드 를 모 르 겠 습 니 다.다만 느낌 이 비슷 합 니 다.고수 가 차이 점 을 지적 할 수 있 습 니 다.동생 은 여기 서 감 사 드 립 니 다.

위 에서 아래로:
안 드 로 이 드 구조 설명 LAMP 구조
1.응용 프로그램---구체 적 인 응용---웹 응용 프로그램
2.응용 프로그램 프레임 워 크
3.시스템 실행 라 이브 러 리:-가상 컴퓨터---WEB 서버
『93555』리 눅 스 커 널:---운영 체제----lamp 구조 중의 L
lamp 과 컴퓨터 내부 의 관계

CPU 는 공장,하드디스크 는 큰 창고,메모 리 는 정규 중계 센터,가상 메모 리 는 임시 중계 센터
Php 언어 는 zend 에서 기계 언어 로 컴 파일 되 어 cpu 를 조작 합 니 다.
데이터 베 이 스 를 조작 하 는 것 은 I/O 작업 에 속 하고 기계 운동 에 속한다.즉,한 사이트 의 병목 이 하 드 디스크 에 대한 읽 기와 쓰기 로 인 한 것 이다.해결 방법 은 i/o 작업 횟수 를 줄 이 고 버퍼 기술 을 사용 하 는 것 이다.즉,데이터 조작 을 mencache 에 넣 고 일정한 수량 에 이 르 렀 을 때 데이터 베 이 스 를 한꺼번에 기록 하 는 것 이다.mencache 는 key-value 관계 에 속한다.
관계 형 데이터 가 아 닌 이 이념 을 바탕 으로 건 설 된 것 도 key-value 관계 에 속한다.
잦 은 읽 기 동작---mencache 에 넣 기
읽 기,쓰기,적 음-nosql 에 넣 기-읽 기 기능 이 강하 다!
PHP 바 텀 운영 체제 와 작업 원리 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 PHP 바 텀 운영 체제 와 작업 원리 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 우 리 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기