2011-08-26 14 views
62

Windows用のPHPをダウンロードしています。私は2つのオプションをウェブサイト上に持っています。PHPスレッドセーフでWindows用でないスレッドセーフ

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

非スレッドセーフ以下の質問に答えてください:

  1. 二つの違いは何ですか? の利点と欠点は何ですか?
  2. 大量のトラフィックが発生する電子商取引のWebサイトを開発していますが、これはお勧めです。なぜですか? PHPのドキュメントから
+1

[PHPではスレッドセーフかスレッドセーフではない](http://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php ) – Shef

+0

"交通量の多い"とは何を理解していますか?どのようにしてそれを得ることができるでしょうか? – Crack

+0

@ Crack-重いトラフィックは、多くのユーザーが特定の時間にウェブサイトを使用することを意味します。なぜ私はそれを確信できないのですか?何かそれに間違っていますか? –

答えて

69

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

だから私は何を選ぶのですか? PHPをCGIバイナリとして実行することを選択した場合、各リクエストでバイナリが呼び出されるため、スレッドの安全性は必要ありません。 IIS5やIIS6などのマルチスレッドWebサーバーでは、スレッド版のPHPを使用する必要があります。

だから、それは本当にあなたがPHPを使用する方法によって異なります。

  • のApache + LoadModule:安全
  • のApache + FastCGIのスレッド:非スレッドセーフ
  • IIS:安全スレッド
  • IIS +のFastCGI:非スレッドセーフ

PHPマニュアルあり素敵なinstallation instructions

AFAIRは、FastCGIを使用してPHPを実行する方が望ましい方法です。より高速に実行され、より細かいセキュリティ設定が可能です。

+9

[This](http://windows.php.net/download/)ページには、「IISでPHPを使用している場合は、PHPの非スレッドセーフ(NTS)バージョンを使用する必要があります。 "IIS:Thread Safe" – umutm

+6

はい、それはFastCGIについて言及しています。スレッドセーフは、ISAPI(php5isapi.dll)を使用する場合です。 – Crack

+0

スレッドセーフではないオプションを使用するのはなぜですか?それは私が安全な車と安全でない車を買うことを選ぶことができれば、どうして私は安全でない車を選ぶだろうか?それはより良いか何かを実行するか? –

0

クラックに加えて、5.4以降では、組み込みのWebサーバーを使用することができます(これはうまく動作します)。

+10

あなたが話していることへの参照を追加する必要があります。どのような組み込みのWebサーバーですか?これは、ThreadSafeとNotThreadSafeの関係はどうですか? – Despertar

0

Apacheを使用している場合は、Apache24 \ conf \ httpd.confファイルを編集して「loadmodule」を検索します。

のLoadModule php7_module:あなたはあなたのLoadModuleのような.dllは何か参照している表示された場合、 "E:/x64Stack/PHP/php7.1.9/php7apache2_4.dll"
のAddHandlerがapplication/x-httpd-phpのを.PHP
PHPIniDir "E:/x64Stack/PHP/php7.1.9"

その後、スレッドセーフがまたはTS有効にしたい - スレッドセーフ版を。

IISまたはApacheをCGIで使用している場合、NTSフレーバーを使用している場合は、

私は複数のスタックを使用しています。それらの複数のサーバーとバージョンのPHP内では、パス/ PHPやサーバーのバージョンからあなたにスローさせないでください。

関連する問題