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


90

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

スレッドセーフインストールと非スレッドセーフインストールの違いは問わないことに注意してください。現在何がインストールされているのか知りたい。



1
@ハイムそれは私の質問ハイムではありません。私はその糸を見た。このサーバーにはすでにPHPがインストールされています。IISとの連携。しかし、これをインストールするために使用されたセットアップを見つける必要があります...スレッドセーフなセットアップ/非アドセーフなセットアップ?
Josh、

回答:


166

phpinfo()を開き、「Thread safe」という行を検索します。スレッドセーフなビルドでは、enableを見つける必要があります。

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

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

15
Windows:php -i|find "Thread"On * nix:php -i|grep Thread
Muhammad Gelbana

7
自分php -i | find "Architecture"への注意:x86かx64かを確認する
チェックサム

@checksum it'sphp -i | grep Architecture
Helpe '07 / 07/14

22

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

  • * nix:

    php -i | grep -i "Thread"
  • ウィンドウズ:

    php -i | findstr -i "thread"

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

Thread Safety => enabled

または

Thread Safety => disabled

サーバーが使用するPHPのバージョンは、OSが選択したバージョン(デフォルト)とは異なる場合があるため、あまりお勧めできません。
バッファロー

4

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

<?php
phpinfo(); ?>

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


4

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


4

次に、ドキュメント化されていないZEND_THREAD_SAFE定数があります。これは、PHP 4.3以降に存在するようです。

<?php

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

https://3v4l.org/tALKX


1

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


どうすれば確認できますか?もちろん、それはIISで使用されています。それが私の質問でした...スレッドセーフか非スレッドセーフかの違いを尋ねるつもりはありません。インストールされているバージョンがスレッドセーフかどうかを知る必要があります
Josh

はい、少し調査しました。もちろん、2つのビルドが利用可能です。安全と非安全。このIIS7のインストールガイドによると、スレッドセーフではないインストールが推奨されています。phpinfo()を開いて、「スレッド」という単語がどこかに表示された場合はどうすればよいですか?
Phliplip 2011

ええ、phpinfoはその中に情報を持っていました...それを見つけただけです...ありがとう@Philiplip
Josh

1

スクリプトから:

/**
 * @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()));
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.