ホームページ >バックエンド開発 >PHPチュートリアル >PHP のスレッドセーフ バージョンと非スレッドセーフ バージョンの違いの詳細な分析_PHP チュートリアル
2000 年 10 月 20 日にリリースされた最初の Windows バージョンの PHP 3.0.17 以降、すべてのバージョンはスレッドセーフです。これは、マルチプロセス作業メソッドを使用する Linux/Unix システムとは異なり、Windows システムはマルチスレッドを使用するためです。動作します。 IIS で CGI モードで PHP を実行すると、CGI モードがマルチスレッドではなくマルチプロセスに基づいているため、非常に遅くなります。
通常、ISAPI モードで実行するように PHP を設定します。ISAPI は、はるかに高速なマルチスレッド方式です。しかし、問題があります。一般的に使用されている PHP 拡張機能の多くは、Linux/Unix のマルチプロセスの考え方に基づいて開発されています。これらの拡張機能を ISAPI モードで実行すると、問題が発生し、IIS がダウンします。したがって、CGI モードは IIS で PHP を実行する最も安全な方法ですが、CGI モードでは HTTP リクエストごとに PHP 環境全体をリロードおよびアンロードする必要があり、その消費量は膨大です。
IIS での PHP の効率とセキュリティを考慮するために、Microsoft は FastCGI ソリューションを提供しています。 FastCGI を使用すると、新しいリクエストごとにプロセスを再度開くのではなく、PHP プロセスを再利用できます。同時に、FastCGI では複数のプロセスを同時に実行することもできます。これにより、CGI プロセス モードの過剰な消費の問題が解決されるだけでなく、CGI プロセス モードにはスレッド セーフの問題がないという事実も利用されます。
したがって、ISAPI を使用して PHP を実行する場合は、スレッド セーフ (スレッド セーフ) バージョンを使用する必要があります。また、FastCGI モードを使用して PHP を実行する場合は、スレッド セーフ チェックを使用する必要はなく、None Thread Safe (NTS、非スレッドセーフ) ) バージョンでは効率が向上します。
公式 PHP http://php.net/ には Widows の 4 つのバージョンがあります: VC9 x86 非スレッド セーフ、VC9 x86 スレッド セーフ、VC6 x86 非スレッド セーフ、VC6 x86 スレッド セーフです。
1. サポートされるサーバーが異なります
VC9 バージョンは IIS サーバー用であり、APACHE をサポートしませんが、VC6 バージョンは IIS と Apache の両方をサポートします
VC6とは何ですか?
VC6 は従来の Visual Studio 6 コンパイラーであり、このコンパイラーを使用してコンパイルされます。
VC9とは何ですか?
VC9 は、Microsoft の VS エディターでコンパイルされた Visual Studio 2008 コンパイラーです。
それでは、ダウンロードする PHP のバージョンをどのように選択すればよいのでしょうか?
Windows で Apache+PHP を使用している場合は、VC6 バージョンを選択してください。
Windows で IIS+PHP を使用している場合は、VC9 バージョンを選択してください。
2. 実行モードの違い
PHP には、ISAPI と FastCGI という 2 つの実行モードがあります。
FastCGI の実行メソッドは単一のスレッドを使用して操作を実行するため、スレッド セーフティ チェックの保護を削除することで、PHP の実行効率を向上させることが推奨されます。非スレッドセーフバージョンを選択します。
Apache サーバーの場合は通常 isapi 方式が選択され、nginx サーバーの場合は FastCGI 方式が選択されます。
http://www.bkjia.com/PHPjc/328149.html