ホームページ >バックエンド開発 >PHPの問題 >php nts とはどういう意味ですか?

php nts とはどういう意味ですか?

藏色散人
藏色散人オリジナル
2021-07-27 10:38:122542ブラウズ

php nts は、非スレッドセーフを意味する「ノンスレッドセーフ」を指します。通常、PHP が高速 CGI モードで実行される場合は、パフォーマンスが優れている nts バージョンを選択してください。

php nts とはどういう意味ですか?

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php nts の意味?

NTS は None-Thread Safe の略で、通常、高速 CGI モードで実行する場合はこのバージョンが選択され、パフォーマンスが向上します。

TS は、スレッド セーフを指します。通常、このバージョンは、IIS が ISAPI モードで読み込まれるときに選択されます。

具体的:

2000 年 10 月 20 日にリリースされた最初の Windows バージョンの PHP 3.0.17 以降、すべてのバージョンはスレッドセーフです。 Linux/Unix システム マルチプロセス作業方式との違いは、Windows システムではマルチスレッド作業方式が使用されることです。 IIS で CGI モードで PHP を実行すると、CGI モードがマルチスレッドではなくマルチプロセスに基づいているため、非常に遅くなります。通常、PHP は ISAPI モードで実行されるように設定します。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、非スレッド セーフ) バージョンを使用すると、効率が向上します。

phpinfo(); 印刷環境を通じてスレッド セーフ項目を確認します。この項目は、スレッド セーフであるかどうかを確認します。有効になっている場合、一般的には ts バージョンである必要があり、それ以外の場合は nts です。バージョン。

A: PHP インストール ファイルをダウンロードすると、このページ http://windows.php.net/download/ にリストされているように、非スレッド セーフとスレッド セーフなどの 2 つの異なるバイナリ ファイルが表示されました。これは何を意味し、それらの違いは何ですか?

違いは上のリンクでも確認できます。

Q: これは主に Web サーバー用です。Windows 環境で、使用する Web サーバーが apchae または iis 7 以下の場合は、スレッドセーフなインストール ファイルを選択する必要があります。Fast In を使用する場合は - CGI モードでは、Web サーバー自体がスレッド セーフを保証できるため、非スレッド セーフを選択できます。

Q: 上で述べたように、これは Web サーバー用です。一部の Web サーバーは、アプリケーションのリクエストを処理するときにマルチプロセスではなくマルチスレッドを使用します。スレッド メソッドには共有レジスタとメモリが含まれるため、現時点では、プログラムはレジスタ内のデータの一貫性を処理する、つまりスレッドの安全性を確保するために、追加の経験を費やす必要があります。

もちろん、バイナリ ファイルをコンパイルするときに使用されるコンパイラもあります: vc9 (vs シリーズ) vc6 (gcc)

したがって、スレッド セーフを使用するかどうかは主に、ユーザーが使用する PHP リクエストに依存します。 Webサーバーの処理方式は、マルチスレッド処理の場合はスレッドセーフ、そうでない場合はノンスレッドセーフを選択してください。

[推奨学習: PHP ビデオ チュートリアル ]

以上がphp nts とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。