programing

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

nicegoodjob 2023. 1. 26. 11:35
반응형

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

설치된 버전의 PHP가 스레드 세이프인지 아닌지는 어떻게 알 수 있습니까?

스레드 세이프 설치와 스레드 세이프 설치의 차이를 묻는 것이 아닙니다.현재 무엇이 설치되어 있는지 알고 싶습니다.

phpinfo()를 열고 Thread safety 을 검색합니다.스레드 세이프 빌드를 사용하려면 enable을 찾아야 합니다.

Muhammad Gelbana의 코멘트에 기재되어 있는 바와 같이, 다음의 것도 사용할 수 있습니다.

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

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

  • *nix:

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

    php -i | findstr -i "thread"
    

다음과 같은 결과를 얻을 수 있습니다.

Thread Safety => enabled

또는

Thread Safety => disabled

php[version]라는 이름의 파일을 보는 것이 더 쉬울 뿐입니다.php의 루트 폴더에 dll이 있습니다.php[버전] 중 하나입니다.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';
}

https://3v4l.org/tALKX

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

<?php
phpinfo(); ?>

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

Apache Module인지 CGI Binary인지 확인합니다.스택 오버플로우 질문 PHP에서 스레드 세이프 또는 스레드 이외 세이프란?를 참조하십시오.

그것을 확인하는 또 다른 방법은php -v또는php --version. 광산(NTS)의 예:

    $ php --version
    
    PHP 7.3.25-1+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Dec 26 2020 10:32:51) ( NTS )       
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.3.25, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.25-1+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

언급URL : https://stackoverflow.com/questions/5799843/find-if-the-installed-php-is-threadsafe-or-nonthreadsafe

반응형