PHPのインストールされたバージョンがスレッドセーフかスレッドセーフでないかを調べるにはどうすればよいですか?
スレッドセーフなインストールとスレッドセーフでないインストールの違いを尋ねているわけではないことに注意してください。現在インストールされているものを知りたいです。
Phpinfo()を開き、行スレッドセーフを検索します。スレッドセーフビルドの場合は、enableを見つける必要があります。
Muhammad Gelbana によるコメントで指定されているように、以下も使用できます。
php -i|findstr "Thread"
php -i|grep Thread
コマンドラインを使用する場合:
* nix:
php -i | grep -i "Thread"
Windows:
php -i | findstr -i "thread"
これにより、次のようになります。
Thread Safety => enabled
または
Thread Safety => disabled
新しいPHPファイルを作成し、このコードを挿入します。
<?php
phpinfo(); ?>
次に、このページを実行すると、PHP情報がすべて表示されます。必要な用語を検索すると、有効になっていることが表示されます。
Phpのルートフォルダにあるphp [version] .dllという名前のファイルを見る方が簡単だと思います。 php [version] .dllまたはphp [version] ts.dll(tsはスレッドセーフの略)。したがって、php7.0.10がインストールされている場合、この名前のディレクトリに移動すると、php7ts.dllという名前のファイルが見つかります。これは非常に悲しい方法ですが、うまくいきます!
次に、文書化されていないZEND_THREAD_SAFE
定数。PHP 4.3。
<?php
if (ZEND_THREAD_SAFE) {
echo 'Thread safe';
} else {
echo 'Not thread safe';
}
スクリプトから:
/**
* @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()));
}
インストールがApacheモジュールまたはCGIバイナリかどうかを確認します。スタックオーバーフローの質問PHPのスレッドセーフまたは非スレッドセーフとは何ですか?を参照してください。