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


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

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

Author: Peter Mortensen, 2011-04-27

7 answers

Откройте phpinfo() и найдите строку Потокобезопасность. Для потокобезопасной сборки вы должны найти включить.

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

  • В Windows: php -i|findstr "Thread"
  • На *nix: php -i|grep Thread
 128
Author: grunk, 2017-05-23 12:34:20

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

  • *никс:

    php -i | grep -i "Thread"
    
  • Окна:

    php -i | findstr -i "thread"
    

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

Thread Safety => enabled

Или

Thread Safety => disabled
 19
Author: Matt, 2018-08-20 05:58:15

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

<?php
phpinfo(); ?>

Затем запустите эту страницу, и вы найдете всю информацию о PHP. Найдите нужный термин, и он покажет вам, что он включен.

 4
Author: peroxide, 2016-12-17 13:50:44

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

 2
Author: Flemin Adambukulam, 2017-04-12 20:41:10

Из сценария:

/**
 * @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()));
}
 1
Author: Elvis Ciotti, 2016-12-17 13:51:16

Затем есть недокументированная константа ZEND_THREAD_SAFE, которая, похоже, существует с PHP 4.3.

<?php

if (ZEND_THREAD_SAFE) {
    echo 'Thread safe';
} else {
    echo 'Not thread safe';
}

Https://3v4l.org/tALKX

 1
Author: ShiraNai7, 2018-03-03 12:55:58

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

 0
Author: Phliplip, 2017-05-23 12:26:12