Как узнать, является ли установленная версия PHP потокобезопасной или нет?
Обратите внимание, что я не спрашиваю о разнице между поточно-поточно / небезопасной установкой. Я хотел бы узнать, что сейчас установлено.
php
iis
thread-safety
Джош
источник
источник
Ответы:
Откройте phpinfo () и найдите строку Безопасность потоков . Для поточно-ориентированной сборки вы должны найти enable .
Как указано в комментариях Мухаммада Гелбаны, вы также можете использовать:
php -i|findstr "Thread"
php -i|grep Thread
источник
php -i|find "Thread"
On * nix:php -i|grep Thread
php -i | find "Architecture"
проверить, x86 или x64php -i | grep Architecture
Если вы предпочитаете использовать командную строку:
* nix:
Windows:
Это должно дать вам что-то вроде этого:
или
источник
Создайте новый файл PHP и вставьте в него этот код:
<?php phpinfo(); ?>
Затем запустите эту страницу, и вы найдете всю информацию о PHP. Найдите нужный термин, и он покажет, что он включен.
источник
Мне просто проще посмотреть файл с именем php [version] .dll в корневой папке php. Это либо php [версия] .dll, либо php [версия] ts.dll (ts означает Thread Safe). Итак, если у вас установлен 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
источник
Проверьте, какой у вас установлен: модуль Apache или двоичный файл CGI. См. Вопрос о переполнении стека. Что такое потокобезопасность или небезопасность в 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())); }
источник