설치된 PHP 버전이 스레드로부터 안전한지 여부를 어떻게 알 수 있습니까?
스레드 세이프 / 비 스레드 세이프 설치의 차이점을 묻는 것이 아닙니다. 현재 설치된 것이 무엇인지 알고 싶습니다.
답변
phpinfo ()를 열고 Thread safety 라인을 검색하십시오 . 스레드로부터 안전한 빌드의 경우 enable 을 찾아야 합니다 .
Muhammad Gelbana 의 주석에 지정된 대로 다음을 사용할 수도 있습니다.
- Windows의 경우 :
php -i|findstr "Thread"
- * nix에서 :
php -i|grep Thread
답변
명령 줄을 사용하려는 경우 :
-
*아니야:
php -i | grep -i "Thread"
-
Windows :
php -i | findstr -i "thread"
이것은 당신에게 다음과 같은 것을 줄 것입니다 :
Thread Safety => enabled
또는
Thread Safety => disabled
답변
새 PHP 파일을 만들고 다음 코드를 삽입합니다.
<?php
phpinfo(); ?>
그런 다음이 페이지를 실행하면 모든 PHP 정보를 찾을 수 있습니다. 원하는 용어를 검색하면 활성화 된 것으로 표시됩니다.
답변
php의 루트 폴더에있는 php [version] .dll 파일을 보는 것이 더 쉽습니다. php [version] .dll 또는 php [version] ts.dll (ts는 스레드 세이프를 의미)입니다. 따라서 php7.0.10이 설치되어있는 경우이 이름이있는 디렉토리로 이동하면 php7ts.dll이라는 파일을 찾을 수 있습니다. 이것은 알아내는 매우 슬픈 방법이지만 작동합니다!
답변
그리고 문서화되지 않은 ZEND_THREAD_SAFE
상수가 있는데, PHP 4.3 이후로 존재하는 것 같습니다.
<?php
if (ZEND_THREAD_SAFE) {
echo 'Thread safe';
} else {
echo 'Not thread safe';
}
답변
설치가 Apache Module 또는 CGI Binary인지 확인하십시오. 스택 오버플로 질문 PHP에서 스레드 안전 또는 비 스레드 안전이란 무엇입니까?를 참조하십시오 . .
답변
스크립트에서 :
/**
* @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()));
}