ホームページ  >  記事  >  バックエンド開発  >  PHP のいくつかのバージョン間の違いについての簡単な説明

PHP のいくつかのバージョン間の違いについての簡単な説明

little bottle
little bottle転載
2019-04-24 11:29:554965ブラウズ

この記事の編集者は、PHP のさまざまなバージョンの違いについて説明します。興味のある友人は、それについて学ぶことができます。お役に立てば幸いです。

PHP バージョンは、バージョン 5 になってから、新しいバージョンのリリース速度が明らかに大幅に向上しており、PHP5.2、5.3、5.4、5.5 から始まり、ほぼ 6.0 になっています。

注: ecshop ユーザーは意識的に php5.2.17 バージョンを使用してください。ふふ。

php公式サイトからphpをダウンロードすると、vc6とvc9の違いが出てきますが、これはどういう意味でしょうか?

VC6 は従来の Visual Studio 6 コンパイラです。このバージョンのコンパイラを使用して PHP コードをコンパイルし、アプリケーション サーバーとして Apache を使用する場合は、vc6 を選択してください。
VC9 は Visual Studio 2008 コンパイラであり、Microsoft の VS エディタを使用してコンパイルされます。 IIS をアプリケーション サーバーとして使用する場合は、vc9 を選択します。

そこで、php-5.2.17-nts-Win32-VC6-x86.zip php の解凍されたファイルに、nts がある場合とない場合とで違いがあることに気付きました。これは何を意味するのでしょうか?

これは、php の 5.2 シリーズ バージョンから始まります。バージョン 5.2.1 以降、ts と nts、スレッド セーフ (スレッド セーフ) となしスレッド セーフ (NTS、非スレッド セーフ) の間に違いがあります。

Windows バージョンの PHP には、次のバージョンから始まるスレッドがあります。 5.2.1 セーフ (スレッド セーフ) となしスレッド セーフ (NTS、非スレッド セーフ) の違いは何ですか?どちらを使用するべきですか?ここで簡単に紹介します。

2000 年 10 月 20 日にリリースされた最初の Windows バージョンの PHP 3.0.17 以降、すべてのバージョンはスレッドセーフです。これは、Linux/Unix システムではマルチプロセス作業方式が使用されており、Windows ではシステムはマルチスレッド作業方式を使用します。 IIS で CGI モードで PHP を実行すると、CGI モードはマルチスレッドではなくマルチプロセスに基づいているため、非常に遅くなります。 ISAPI はマルチスレッド方式であり、はるかに高速であるため、Windows 上で ISAPI モードで実行するように PHP を構成します。

しかし、問題があります。一般的に使用される PHP 拡張機能の多くは、Linux/Unix のマルチプロセスの考え方に基づいて開発されています。これらの拡張機能は、ISAPI モードで実行すると問題が発生し、IIS プロセスがクラッシュする可能性があります。したがって、IIS の場合、CGI モードは PHP を実行する最も安全な方法ですが、CGI モードでは HTTP リクエストごとに PHP 環境全体をリロードおよびアンロードする必要があり、その消費量は膨大です。
IIS での PHP の効率とセキュリティを考慮するために、Microsoft は FastCGI ソリューションを提供しています。 FastCGI を使用すると、新しいリクエストごとにプロセスを再度開くのではなく、PHP プロセスを再利用できます。同時に、FastCGI では複数のプロセスを同時に実行することもできます。これにより、CGI プロセス モードの過剰な消費の問題が解決されるだけでなく、CGI プロセス モードにはスレッド セーフの問題がないという事実も利用されます。
したがって、ISAPI を使用して PHP を実行する場合は、スレッド セーフ (スレッド セーフ) バージョンを使用する必要があります。また、FastCGI モードを使用して PHP を実行する場合は、スレッド セーフ チェックを使用する必要はなく、None Thread Safe ( NTS、非スレッドセーフ) バージョンでは効率が向上します。

さまざまな Web サーバー、つまりアプリケーション サーバーによっては、アプリケーションのリクエストを処理するときに、マルチプロセスではなくマルチスレッドを使用するものがあります。スレッドには共有レジスタとメモリが含まれるため、間違いが発生しやすくなります ( C 言語ポインタの状況を考慮してください)、システムはレジスタ内のデータを処理し、その一貫性を確保するために時間とリソースを必要とします。これにより、スレッドの安全性が確保されます。

したがって、Thread Safe (スレッド セーフ) を使用するかどうかは、主に Web サーバーが使用する PHP リクエストの処理方法に依存します。IIS の ISAPI メソッドなどのマルチスレッド処理の場合は、スレッド セーフを選択してください。 FastCGI の場合は、「スレッドセーフではない」を選択します。

最後の提案: IIS では、ISAPI を使用して PHP を実行する場合はスレッド セーフ (スレッド セーフ) バージョンを使用し、FastCGI を使用して PHP を実行する場合はスレッド セーフなし (NTS、非スレッド セーフ) バージョンを使用してください。 ) バージョン。

注: php5.2 には vc9 がありません。php5.3 と php5.4 には vc6 がありません。ふふ。 PHP 5.5 からは xp と win2003 はサポートされなくなり、vc11 もサポートされるようになりました、ははは。

関連チュートリアル: PHP ビデオ チュートリアル

以上がPHP のいくつかのバージョン間の違いについての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。