티스토리 뷰
요즘 좀 정신이 없다 보니 포스트를 너무 오랜만에 하는것 같네요..
Apache 와 PHP를 설치해 사용할 때 늘 리눅스환경에서만 설치해 사용하다가
회사 업무 중 Windows 환경에 설치된 PHP버전을 업그레이드 할 일이 생겨 다운로드 사이트에 들어갔더니, PHP 설치 시 버전이 서로 다름을 발견하였다.
(분명 예전에도 봤었던 부분일텐데 그냥 넘어갔더니...)
그래서 Non-Thread Safe 와 Thread Safe 버전의 정확한 의미를 몰라 구글링을 해보다가
다운로드 사이트 바로 옆에 친절히 설명되있음을 발견했다 (...)
또 다른 분들이 자세히 적어놓은 글과 함께
-------------------------------------------------------------------
설명하기 앞서, 나뉘게된 배경부터 설명하자면
예전에는 PHP가 오로지 Thread Safe(이하 TS) 버전만 빌드되었다고 한다.
PHP는 기본적으로 Multi-process 방식만을 지원했었다.
이는 기존 리눅스/유닉스 계열 역시 Multi-process 방식이었기 때문이었는데
원래 Multi-thread 방식인 윈도우 계열에 이 TS 버전을 빌드하게 되면서 문제가 생기게 되었다.
PHP를 윈도우 웹서버인 IIS와 연동하기 위해서는 CGI(or FastCGI) 또는 ISAPI(Internet Server API) 방식으로 연동을 해야 하는데,
기존까지 PHP와 관련된 모듈들의 대부분이 Multi-process 방식으로 개발되었기 때문에 Multi-thread 방식으로 개발된 ISAPI로 연동하였을 경우
서버가 다운되는 현상이 일어나게 된 것이다.
그래서 안정적인 방법으로 CGI 방식으로 변경하여 사용했으나 퍼포먼스가 너무 느린게 문제가 되었고
이 느린 시스템 퍼포먼스를 개선하기 위해 나온 버전이 바로 Non-Thread Safe(이하 NTS) 버전이라고 한다.
다운로드 사이트 옆의 설명을 보면,
TS 버전의 경우, 다중 스레드 가능 빌드로서 멀티 스레드 SAPI(Server API)와 PHP를 웹서버에 로드할 경우에는 TS 바이너리를 사용해야 한다고 한다.
NTS 버전의 경우, 단일 스레드 전용 빌드로서 멀티 스레딩을 사용하지 않고 FastCGI 프로토콜을 통한 웹서버를 사용할 경우 NTS 바이너리를 사용해한다고 한다.
또한
IIS 웹서버 위에 FastCGI로 PHP를 사용하는 경우에는 NTS버전을 사용해야 한다.
Apache 웹서버 위에 PHP를 사용하는 경우에는 TS버전을 사용해야 한다.
결론적으로 보면 IIS나 Apache를 사용하면 무조건 이 버전을 사용해야 된다가 아닌
각 웹서버에서 사용하는 모듈이나 프로토콜에 따라 아래와 같이 골라서 사용하면 된다.
Windows + IIS(ISAPI) : TS 버전
Windows + IIS(CGI or FastCGI) : NTS 버전
Windows + Apache : TS 버전
참고 사이트
- php 버전에서 none thread safe와 thread safe 두종류의 차이는 무엇입니까?
'개발' 카테고리의 다른 글
MSSQL 쿼리 이력 조회방법 (0) | 2017.01.12 |
---|---|
Linux 가상머신 저장소 용량 늘리기 (0) | 2016.12.29 |
javascript 멀티 라인 쓰는법 (0) | 2016.12.15 |
윈도우 시작프로그램 등록방법 (0) | 2016.12.06 |
[CentOS 7] 방화벽 동작 명령어 정리 (0) | 2016.11.30 |
- Total
- Today
- Yesterday
- 윈도우 시작
- mkfs
- 복사 붙여넣기
- lvextend
- 쿼리 히스토리
- NTS
- 리눅스 가상
- resize2fs
- 가상머신 저장소 용량 늘리기
- pvscan
- 레지스트리 등록
- VirtualBox
- 용량 늘리기
- ES6
- 설정
- Thread safe
- 끄기
- firewalld
- javascript 멀티 라인
- firewall-cmd
- fstab
- Non Thread Safe
- 시작프로그램 등록
- mke2fs
- File
- 내리기
- 쿼리 이력 조회
- Template literals
- pvresize
- CentOS7
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |