2010-08-17 5 views
6

내 PHP에 사용할 설치가 궁금하십니까? 나는 아파치를 사용할 것이다. 나는 스레드 안전이 아파치와 스레드가 아닌 IIS에서 더 안전하다는 것을 읽었다. isit true (iis를 나중에 사용할 것인지 알 수 있습니까?)스레드 안전 또는 스레드 안전하지 않은 PHP를 사용 하시겠습니까?

+2

IIS는 거대한 보안 및 성능 문제이므로 Apache를 통해 사용해야합니다. –

+0

@delan, 왜 그렇게 말하겠습니까? –

+0

확인 : http://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php – biphobe

답변

11

프로세스 대신 요청을 처리하는 스레드를 만드는 mod_php와 MPM을 사용하는 경우 스레드 안전성을 유지해야합니다. 그렇지 않으면 여러 PHP 스크립트가 동시에 실행될 때 원하지 않는 부작용이 생길 수 있습니다. 같은 프로세스 공간에있는 쓰레드. Apache2는 기본적으로 Windows에서 mpm_winnt MPM을 사용합니다.이 MPM은 들어오는 요청을 처리하는 스레드를 만듭니다. 그래서 이것을 사용한다면 thread safe 바이너리를 사용하십시오. PHP 자체가 스레드로부터 안전하다고하더라도 사용하는 라이브러리/확장은 그렇지 않을 수도 있습니다. 따라서 스레드 안전 PHP 바이너리를 사용하더라도 mod_php와 스레드 MPM에 여전히 문제가있을 수 있습니다. 더 많은 정보를 얻으려면 http://fi.php.net/manual/en/faq.installation.php#faq.installation.apache2

그러나 mod_php를 사용하고 있지 않거나 (예 : FCGI를 사용하고있는 경우), mod_php를 사용하고 있지만 스레드 대신 프로세스를 생성하는 MPM을 사용하고 있다면 핸들 요청 (예 : prefork MPM)을 사용하는 경우 스레드 안전 버전보다 효율적이기 때문에 비 스레드 안전 바이너리를 사용해야하며 PHP 서버 스크립트는 자신의 웹 서버 설정에서이 방법으로 실행될 때 자신의 프로세스 공간에서 실행되기 때문에 , 스레드 안전 바이너리의 추가 오버 헤드에 대한 이유는 없습니다.