Jak sprawdzić, czy zainstalowana wersja PHP jest wątkowo bezpieczna, czy nie?
Zwróć uwagę, że nie pytam o różnicę między instalacją bezpieczną dla wątków / bez wątku. Chciałbym się dowiedzieć, co jest aktualnie zainstalowane.
php
iis
thread-safety
Josh
źródło
źródło
Odpowiedzi:
Otwórz phpinfo () i wyszukaj wiersz Bezpieczeństwo wątków . Aby uzyskać bezpieczną wątkowo kompilację, należy znaleźć opcję enable .
Jak określono w komentarzach Muhammada Gelbany , możesz również użyć:
php -i|findstr "Thread"
php -i|grep Thread
źródło
php -i|find "Thread"
On * nix:php -i|grep Thread
php -i | find "Architecture"
aby sprawdzić, czy jest to x86 czy x64php -i | grep Architecture
Jeśli wolisz używać wiersza poleceń:
*nic:
Okna:
To powinno dać ci coś takiego:
lub
źródło
Utwórz nowy plik PHP i wstaw do niego ten kod:
<?php phpinfo(); ?>
Następnie uruchom tę stronę, a znajdziesz wszystkie informacje o PHP. Wyszukaj żądany termin, a pokaże, że jest włączony.
źródło
Po prostu łatwiej mi przyjrzeć się plikowi o nazwie php [wersja] .dll w głównym folderze php. Jest to php [wersja] .dll lub php [wersja] ts.dll (ts oznacza Thread Safe). Tak więc, jeśli masz zainstalowane php7.0.10, przejdź do katalogu o tej nazwie, a znajdziesz plik o nazwie php7ts.dll. To bardzo smutny sposób na sprawdzenie tego, ale działa!
źródło
Jest też nieudokumentowana
ZEND_THREAD_SAFE
stała, która wydaje się istnieć od PHP 4.3.<?php if (ZEND_THREAD_SAFE) { echo 'Thread safe'; } else { echo 'Not thread safe'; }
https://3v4l.org/tALKX
źródło
Sprawdź, czy Twoja instalacja to Apache Module czy CGI Binary. Zobacz pytanie dotyczące przepełnienia stosu Co jest bezpieczne dla wątków lub nie jest bezpieczne w PHP? .
źródło
Ze skryptu:
/** * @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())); }
źródło