Bagaimana cara mengetahui apakah versi PHP yang diinstal aman untuk thread atau tidak?
Harap dicatat bahwa saya tidak menanyakan perbedaan antara pemasangan threadsafe / non thread safe. Saya ingin mencari tahu apa yang terpasang saat ini.
Bagaimana cara mengetahui apakah versi PHP yang diinstal aman untuk thread atau tidak?
Harap dicatat bahwa saya tidak menanyakan perbedaan antara pemasangan threadsafe / non thread safe. Saya ingin mencari tahu apa yang terpasang saat ini.
Jawaban:
Buka phpinfo () dan cari keamanan Thread baris . Untuk membangun thread-safe, Anda harus menemukan enable .
Sebagaimana ditentukan dalam komentar oleh Muhammad Gelbana, Anda juga dapat menggunakan:
php -i|findstr "Thread"
php -i|grep Thread
php -i|find "Thread"
Aktif * nix:php -i|grep Thread
php -i | find "Architecture"
untuk memeriksa apakah itu x86 atau x64
php -i | grep Architecture
Jika Anda lebih suka menggunakan baris perintah:
* nix:
php -i | grep -i "Thread"
Windows:
php -i | findstr -i "thread"
Ini akan memberi Anda sesuatu seperti ini:
Thread Safety => enabled
atau
Thread Safety => disabled
Saya hanya merasa lebih mudah untuk melihat file bernama php [versi] .dll di folder root php. Ini bisa berupa php [versi] .dll atau php [versi] ts.dll (ts singkatan dari Thread Safe). Jadi, jika Anda telah menginstal php7.0.10, buka direktori yang memiliki nama ini dan Anda akan menemukan file bernama php7ts.dll. Ini adalah cara yang sangat menyedihkan untuk mengetahuinya, tetapi berhasil!
Lalu ada ZEND_THREAD_SAFE
konstanta tak berdokumen , yang tampaknya ada sejak PHP 4.3.
<?php
if (ZEND_THREAD_SAFE) {
echo 'Thread safe';
} else {
echo 'Not thread safe';
}
Periksa apakah penginstalan Anda adalah Apache Module atau CGI Binary. Lihat pertanyaan Stack Overflow Apa itu thread safe atau non-thread safe di PHP? .
Dari skrip:
/**
* @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()));
}