1. ホーム
  2. php

[解決済み] PHP スレッドセーフとノンスレッドセーフ (Windows版)

2022-12-07 01:04:25

質問

PHP for Windowsをダウンロードしています。Webサイトで2つのオプションが表示されました。

  1. PHP スレッドセーフ
  2. PHP ノンスレッドセーフ

以下の質問にお答えください。

  1. この2つの違いは何ですか?また メリットとデメリットは何ですか?
  2. トラフィックが多いECサイトを開発していますが、どちらがお勧めですか、またその理由は何ですか?

どのように解決するのですか?

PHPのドキュメントより。

スレッドセーフは、Windows上のApache 2のようなマルチスレッドのウェブサーバーコンテキストでバイナリが動作することを意味します。スレッドセーフは、データが他のスレッドと衝突しないように、各スレッドでローカルストレージのコピーを作成することによって動作します。

では、何を選べばよいのでしょうか?PHPをCGIバイナリとして実行することを選択した場合、バイナリはリクエストごとに起動されるため、スレッドセーフは必要ありません。IIS5やIIS6のようなマルチスレッドのウェブサーバーでは、スレッド化されたバージョンのPHPを使用する必要があります。

つまり、PHPをどのように使いたいかによるのです。

  • Apache + (日本語) LoadModule : スレッドセーフ
  • Apache + FastCGI。非スレッドセーフ
  • IIS: スレッドセーフ
  • IIS + FastCGI。非スレッドセーフ

PHPのマニュアルには インストール手順 .

AFAIR PHPをFastCGIで実行するのが望ましい方法です。パフォーマンスが速く、よりきめ細かいセキュリティ設定が可能です。