문서의 이전 판입니다!
Thread Safe?
웹서버는 당연히 HTTP동시접속이 이루어지므로 여러 작업을 한꺼번에 처리할 수 있어야한다. 멀티쓰레드 방식은 여러 요구를 하나의 프로세스가 시간을 쪼개어 처리하는 방법이고, 멀티 프로세스는 요구마다 프로세스를 만들고 일이 끝나면 없애는 방식이다.
Thread Safe 와 Non Thread Safe
기본적으로 윈도우의 다중처리방식은 멀티 쓰레드 방식인데 리눅스나 유닉스는 멀티 프로세스 방식이다.
원래 PHP와 관련된 모듈들이 대부분 멀티프로세스 방식으로 개발 되었기 때문에 멀티쓰레드 방식으로 개발된 ISAPI 로 윈도우서버 IIS와 연동하기위해 Thread Safe 버전이 개발되었다.
하지만 이 방법은 느리다는게 문제가 있었다. 그래서 Fast-CGI 방식으로 연결하여 퍼포먼스를 해결한 것이 Non Thread Safe 버전이다.
정리를 하자면
Thread Safe
- 단일 스레드
- SAPI와 PHP 호환을 위해
Non Thread Safe
- 다중 스레드
- FAST CGI 호환을 위해
결론
결론적으로 아래와 같이 설치하면 된다.
- Windows + IIS(ISAPI) –> Thread Safe 버전
- Windows + IIS(CGI or FastCGI) –> Non Thread Safe 버전
- Windows + Apache(MPM worker) –> Thread Safe 버전
- Windows + Apache(MPM prefork) –> Non Thread Safe 버전