Найти, если установленный PHP является потокобезопасным или небезопасным?

Как узнать, является ли установленная версия PHP потокобезопасной или нет потокобезопасной?

Обратите внимание, что я не задаю разницу между потоковой безопасностью и безопасностью без потоковой передачи. Я хотел бы узнать, что сейчас установлено.

Откройте phpinfo () и найдите строку Thread safety . Для потокобезопасной сборки вы должны найти разрешение .

Как указано в комментариях Мухаммада Гелбаны, вы также можете использовать:

  • В Windows: php -i|findstr "Thread"
  • On * nix: php -i|grep Thread

Если вы предпочитаете использовать командную строку:

  • * Никс:

     /path/to/php.exe -i | grep -i "Thread" 
  • Окна:

     php -i | findstr -i "thread" 

Это должно дать вам что-то вроде этого:

 Thread Safety => enabled 

или

 Thread Safety => disabled 

Создайте новый файл PHP и вставьте в него этот код:

 <?php phpinfo(); ?> 

Затем запустите эту страницу, и вы найдете всю информацию о 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())); } 

Мне просто проще просмотреть файл с именем php [version] .dll в корневой папке php. Его либо php [версия] .dll, либо php [версия] ts.dll (ts для Thread Safe). Итак, если у вас установлен php7.0.10, перейдите в каталог с таким именем, и вы найдете файл php7ts.dll. Это очень печальный способ узнать, но он работает!

Проверьте, установлена ​​ли ваша установка Apache Module или CGI Binary. См. Вопрос о переполнении стека. Что такое поточно-безопасный или не потоковый сейф в PHP? ,