설치된 PHP가 스레드 세이프인지 비스 레드 세이프인지 확인 하시겠습니까?


91

설치된 PHP 버전이 스레드로부터 안전한지 여부를 어떻게 알 수 있습니까?

스레드 세이프 / 비 스레드 세이프 설치의 차이점을 묻는 것이 아닙니다. 현재 설치된 것이 무엇인지 알고 싶습니다.



1
@Haim 그건 내 질문이 아닙니다 Haim. 나는 그 실을 보았다. 이 서버에 이미 PHP가 설치되어 있습니다. IIS와 함께 작동합니다. 그러나, 이것을 설치하는 데 사용 된 설정을 찾아야합니다 ... Threadsafe 설정 / 비 theadsafe 설정?
Josh

답변:


167

phpinfo ()를 열고 Thread safety 라인을 검색하십시오 . 스레드로부터 안전한 빌드의 경우 enable 을 찾아야 합니다 .

Muhammad Gelbana 의 주석에 지정된 대로 다음을 사용할 수도 있습니다.

  • Windows의 경우 : php -i|findstr "Thread"
  • * nix에서 : php -i|grep Thread

15
Windows : php -i|find "Thread"* nix :php -i|grep Thread
Muhammad Gelbana

7
참고 사항 : php -i | find "Architecture"x86인지 x64인지 확인
체크섬

@checksum 그건php -i | grep Architecture
helpse

22

명령 줄을 사용하려는 경우 :

  • *아니야:

    php -i | grep -i "Thread"
    
  • Windows :

    php -i | findstr -i "thread"
    

이것은 당신에게 다음과 같은 것을 줄 것입니다 :

Thread Safety => enabled

또는

Thread Safety => disabled

그다지 좋은 생각은 아닙니다. 서버에서 사용하는 PHP 버전은 OS에서 선택한 버전 (기본값)과 다를 수 있기 때문입니다.
Buffalo

4

새 PHP 파일을 만들고 다음 코드를 삽입합니다.

<?php
phpinfo(); ?>

그런 다음이 페이지를 실행하면 모든 PHP 정보를 찾을 수 있습니다. 원하는 용어를 검색하면 활성화 된 것으로 표시됩니다.


4

php의 루트 폴더에있는 php [version] .dll 파일을 보는 것이 더 쉽습니다. php [version] .dll 또는 php [version] ts.dll (ts는 스레드 세이프를 의미)입니다. 따라서 php7.0.10이 설치되어있는 경우이 이름이있는 디렉토리로 이동하면 php7ts.dll이라는 파일을 찾을 수 있습니다. 이것은 알아내는 매우 슬픈 방법이지만 작동합니다!


4

그리고 문서화되지 않은 ZEND_THREAD_SAFE상수가 있는데, PHP 4.3 이후로 존재하는 것 같습니다.

<?php

if (ZEND_THREAD_SAFE) {
    echo 'Thread safe';
} else {
    echo 'Not thread safe';
}

https://3v4l.org/tALKX


2

설치가 Apache Module 또는 CGI Binary인지 확인하십시오. 스택 오버플로 질문 PHP에서 스레드 안전 또는 비 스레드 안전이란 무엇입니까?를 참조하십시오 . .


어떻게 확인합니까? 물론 IIS에서 사용하고 있습니다. 그러나 어떤 모듈인지 어떻게 알 수 있습니까? 그것은 내 질문이었습니다 ... 나는 스레드 세이프 / 비 스레드 세이프의 차이점을 묻고 싶지 않습니다. 설치된 버전이 스레드로부터 안전한지 여부를 알고 싶습니다.
Josh

좋아, 방금 조사 해봤는데, 2 개의 빌드가 있습니다. 안전하고 안전하지 않습니다. IIS7에 대한설치 가이드에 따르면 스레드로부터 안전하지 않은 설치를 권장합니다. phpinfo ()를 열고 'thread'라는 단어가 어디에나있는 경우 확인할 수 있습니까?
Phliplip 2011-04-27

그래, phpinfo를 그냥가 ... 감사 @Philiplip 발견 ... 그 안에 정보를했다
조쉬

1

스크립트에서 :

/**
 * @return boolean true if PHP is thread safe
 */
function isThreadSafe()
{
    ob_start();
    phpinfo(INFO_GENERAL);
    return preg_match('/Thread\s*Safety\s*enabled/i', strip_tags(ob_get_clean()));
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.