Как узнать, является ли установленная версия PHP потокобезопасной или нет потокобезопасной?
Обратите внимание, что я не задаю разницу между потоковой безопасностью и безопасностью без потоковой передачи. Я хотел бы узнать, что сейчас установлено.
Откройте phpinfo () и найдите строку Thread safety . Для потокобезопасной сборки вы должны найти разрешение .
Как указано в комментариях Мухаммада Гелбаны, вы также можете использовать:
php -i|findstr "Thread" 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? ,