Come faccio a sapere se la versione installata di PHP è thread-safe o non thread-safe?
Si noti che non sto chiedendo la differenza tra un'installazione threadsafe / non thread safe. Vorrei sapere cosa è installato attualmente.
Come faccio a sapere se la versione installata di PHP è thread-safe o non thread-safe?
Si noti che non sto chiedendo la differenza tra un'installazione threadsafe / non thread safe. Vorrei sapere cosa è installato attualmente.
Risposte:
Apri un phpinfo () e cerca la riga Thread safety . Per una build thread-safe dovresti trovare enable .
Come specificato nei commenti di Muhammad Gelbana puoi utilizzare anche:
php -i|findstr "Thread"
php -i|grep Thread
php -i|find "Thread"
Su * nix:php -i|grep Thread
php -i | find "Architecture"
per verificare se è x86 o x64
php -i | grep Architecture
Se preferisci utilizzare la riga di comando:
* nix:
php -i | grep -i "Thread"
Finestre:
php -i | findstr -i "thread"
Questo dovrebbe darti qualcosa del genere:
Thread Safety => enabled
o
Thread Safety => disabled
Trovo solo più facile guardare il file denominato php [versione] .dll nella cartella principale di php. È php [versione] .dll o php [versione] ts.dll (ts sta per Thread Safe). Quindi, se hai installato php7.0.10, vai nella directory con questo nome e troverai un file chiamato php7ts.dll. Questo è un modo molto triste per scoprirlo, ma funziona!
Poi c'è la ZEND_THREAD_SAFE
costante non documentata , che sembra esistere da PHP 4.3.
<?php
if (ZEND_THREAD_SAFE) {
echo 'Thread safe';
} else {
echo 'Not thread safe';
}
Controlla se la tua installazione è Apache Module o CGI Binary. Vedi la domanda su Stack Overflow Cos'è thread safe o non thread safe in PHP? .
Da uno 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()));
}