PHP'nin kurulu sürümünün iş parçacığı için güvenli olup olmadığını nasıl anlarım?
Lütfen iş parçacığı güvenli / iş parçacığı güvenli olmayan kurulum arasındaki farkı sormadığımı unutmayın. Şu anda neyin kurulu olduğunu öğrenmek istiyorum.
PHP'nin kurulu sürümünün iş parçacığı için güvenli olup olmadığını nasıl anlarım?
Lütfen iş parçacığı güvenli / iş parçacığı güvenli olmayan kurulum arasındaki farkı sormadığımı unutmayın. Şu anda neyin kurulu olduğunu öğrenmek istiyorum.
Yanıtlar:
Bir phpinfo () açın ve İş Parçacığı güvenliği satırını arayın . Bir iş parçacığı güvenli yapı için, bulmalı etkinleştirmek .
Muhammad Gelbana'nın yorumlarında belirtildiği gibi şunları da kullanabilirsiniz:
php -i|findstr "Thread"
php -i|grep Thread
php -i|find "Thread"
* php -i|grep Thread
php -i | find "Architecture"
x86 veya x64 olup olmadığını kontrol etmek için
php -i | grep Architecture
Komut satırını kullanmayı tercih ederseniz:
* nix:
php -i | grep -i "Thread"
Pencereler:
php -i | findstr -i "thread"
Bu size şöyle bir şey vermelidir:
Thread Safety => enabled
veya
Thread Safety => disabled
Sadece php'nin kök klasöründeki php [version] .dll adlı dosyaya bakmayı daha kolay buluyorum. Ya php [version] .dll ya da php [version] ts.dll (ts İş Parçacığı Güvenli anlamına gelir). Öyleyse, php7.0.10 kuruluysa, bu ada sahip dizine gidin ve php7ts.dll adlı bir dosya bulacaksınız. Bu, öğrenmenin çok üzücü bir yolu, ama işe yarıyor!
Sonra ZEND_THREAD_SAFE
, PHP 4.3'ten beri var olduğu görülen belgelenmemiş sabit var.
<?php
if (ZEND_THREAD_SAFE) {
echo 'Thread safe';
} else {
echo 'Not thread safe';
}
Kurulumunuzun Apache Module veya CGI Binary olup olmadığını kontrol edin. Yığın Taşması sorusuna bakın PHP'de iş parçacığı güvenli veya iş parçacığı güvenli olmayan nedir? .
Bir komut dosyasından:
/**
* @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()));
}