web-dev-qa-db-ja.com

インストールされているPHPがスレッドセーフか非スレッドセーフかを確認しますか?

PHPのインストールされたバージョンがスレッドセーフかスレッドセーフでないかを調べるにはどうすればよいですか?

スレッドセーフなインストールとスレッドセーフでないインストールの違いを尋ねているわけではないことに注意してください。現在インストールされているものを知りたいです。

76
Josh

Phpinfo()を開き、行スレッドセーフを検索します。スレッドセーフビルドの場合は、enableを見つける必要があります。

Muhammad Gelbana によるコメントで指定されているように、以下も使用できます。

  • Windowsの場合:php -i|findstr "Thread"
  • * nixの場合:php -i|grep Thread
149
grunk

コマンドラインを使用する場合:

  • * nix:

    php -i | grep -i "Thread"
    
  • Windows:

    php -i | findstr -i "thread"
    

これにより、次のようになります。

Thread Safety => enabled

または

Thread Safety => disabled
21
Matt

新しいPHPファイルを作成し、このコードを挿入します。

<?php
phpinfo(); ?>

次に、このページを実行すると、PHP情報がすべて表示されます。必要な用語を検索すると、有効になっていることが表示されます。

4
peroxide

Phpのルートフォルダにあるphp [version] .dllという名前のファイルを見る方が簡単だと思います。 php [version] .dllまたはphp [version] ts.dll(tsはスレッドセーフの略)。したがって、php7.0.10がインストールされている場合、この名前のディレクトリに移動すると、php7ts.dllという名前のファイルが見つかります。これは非常に悲しい方法ですが、うまくいきます!

3

次に、文書化されていないZEND_THREAD_SAFE定数。PHP 4.3。

<?php

if (ZEND_THREAD_SAFE) {
    echo 'Thread safe';
} else {
    echo 'Not thread safe';
}

https://3v4l.org/tALKX

2
ShiraNai7

スクリプトから:

/**
 * @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()));
}
1
Elvis Ciotti

インストールがApacheモジュールまたはCGIバイナリかどうかを確認します。スタックオーバーフローの質問PHPのスレッドセーフまたは非スレッドセーフとは何ですか?を参照してください。

0
Phliplip