Как узнать, является ли установленная версия 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? ,