Comment savoir si la version installée de PHP est threadsafe ou non thread safe?
Veuillez noter que je ne demande pas la différence entre une installation threadsafe / non thread safe. J'aimerais savoir ce qui est installé actuellement.
Comment savoir si la version installée de PHP est threadsafe ou non thread safe?
Veuillez noter que je ne demande pas la différence entre une installation threadsafe / non thread safe. J'aimerais savoir ce qui est installé actuellement.
Réponses:
Ouvrez un phpinfo () et recherchez la ligne Thread safety . Pour une version thread-safe, vous devriez trouver enable .
Comme spécifié dans les commentaires de Muhammad Gelbana, vous pouvez également utiliser:
php -i|findstr "Thread"
php -i|grep Thread
php -i|find "Thread"
Sur * nix:php -i|grep Thread
php -i | find "Architecture"
pour vérifier si c'est x86 ou x64
php -i | grep Architecture
Si vous préférez utiliser la ligne de commande:
*rien:
php -i | grep -i "Thread"
Les fenêtres:
php -i | findstr -i "thread"
Cela devrait vous donner quelque chose comme ceci:
Thread Safety => enabled
ou
Thread Safety => disabled
Je trouve juste qu'il est plus facile de regarder le fichier nommé php [version] .dll dans le dossier racine de php. Son soit php [version] .dll ou php [version] ts.dll (ts signifie Thread Safe). Donc, si vous avez installé php7.0.10, allez dans le répertoire qui porte ce nom et vous trouverez un fichier nommé php7ts.dll. C'est une façon très triste de le découvrir, mais ça marche!
Ensuite, il y a la ZEND_THREAD_SAFE
constante non documentée , qui semble exister depuis PHP 4.3.
<?php
if (ZEND_THREAD_SAFE) {
echo 'Thread safe';
} else {
echo 'Not thread safe';
}
Vérifiez si votre installation est Apache Module ou CGI Binary. Voir la question Stack Overflow Qu'est-ce que thread safe ou non thread safe en PHP? .
À partir d'un script:
/**
* @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()));
}