ホームページ  >  記事  >  バックエンド開発  >  PHP バージョン VC6 と VC9 の違い、スレッド セーフと非スレッド セーフなど。

PHP バージョン VC6 と VC9 の違い、スレッド セーフと非スレッド セーフなど。

WBOY
WBOYオリジナル
2016-06-13 13:03:53733ブラウズ

PHP バージョン VC6 と VC9 の違い、スレッドセーフと非スレッドセーフなど

最近、多くの PHP プログラマーが PHP バージョンの知識を明確に理解していないことに気づきました。私は多くの同様の記事を読みましたが、インターネット上の結論はすべて曖昧であると感じています。ここでは、最も完全な任意の説明を提供します。

??? この記事では、VC6 と VC9 の違いと選択肢、スレッド セーフと非スレッド セーフ、Apache モジュールと fastcgi について説明します。

PHP のメジャー バージョンは、主に PHP4/PHP5/PHP6 の 3 つのブランチに分かれています

このうち、PHP4 は古すぎて OO のサポートが不十分なため、基本的に削除されました。PHP4 は無視してください。

PHP6 には基本的に生産ライン用のアプリケーションはなく、多くの機能は PHP5.3.3 で実装されているため、詳細については無視してください。

PHP5 のバージョンは主に 4 つのブランチに分かれています: PHP5.2 より前のバージョン、PHP5.2.X、PHP5.3、そして最近リリースされた PHP5.4。

それでは、自分のプロジェクトに適したバージョンをどのように選択すればよいのでしょうか?

??? PHP5.2 より前のバージョンは、いくつかの機能上の欠陥またはバグがあるため、検討する価値がありません。 PHP5.4 はまだベータ版であり、安定版ではありません。PHP5.4 は無視してください。

主流の PHP プログラムは PHP5.2.X との互換性が最も高く、バージョンがアップグレードされるたびにセキュリティと安定性が向上するため、最新バージョンを選択する必要があります。現在、PHP5.2シリーズの最新バージョンはPHP5.2.17です。

自分で製品を開発して使用する場合、PHP5.3 の方が利点が多く、安定性に優れ、組み込みの php-fpm など PHP5.2 にはない多くの機能が追加されています。完全なガベージ コレクション アルゴリズム、名前空間の導入、sqlite3 サポートなど、展開プロジェクトでは検討する価値のあるバージョンである PHP5.3.3 を強くお勧めします。

バージョン番号の違いに加えて、同じバージョン番号の PHP バージョンも異なるため、PHP 拡張機能を選択する際には注意が必要です。

  • インストール バージョン: 実行可能な MSI 形式のインストール パッケージ。
  • ZIP版:解凍してご利用ください。インストール版との違いはありません。 ZIP バージョンを選択することをお勧めします。
  • デバッグ バージョン: 無視してください。

VC6 および VC9

VC6 または VC9 バージョンの選択については、PHP の公式 Web サイトに詳細な説明があります。原文は次のとおりです。

Which version do I choose?

If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP
If you are using PHP with IIS you should use the VC9 versions of PHP
VC6 Versions are compiled with the legacy Visual Studio 6 compiler
VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed
Do NOT use VC9 version with apache.org binaries
我该选择哪个版本?

如果你在apache1或者apache2下使用PHP,你应该选择VC6的版本
如果你在IIS下使用PHP应该选择VC9的版本
VC6的版本使用visual studio6编译
VC9使用Visual Studio 2008编译,并且改进了性能和稳定性。VC9版本的PHP需要你安装Microsoft 2008 C++ Runtime
不要在apache下使用VC9的版本

TS と NTS

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

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

2000 年 10 月 20 日にリリースされた最初の Windows バージョンの PHP 3.0.17 以降、すべてのバージョンがスレッドセーフになっています。これは、Windows システムが Linux/Unix システムとは異なるマルチプロセス作業方法を使用しているためです。マルチスレッド作業方式を採用しています。 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、非スレッドセーフ) バージョンでは効率が向上します。

現在実行中の PHP のバージョンを確認するにはどうすればよいですか?非常に単純なメソッドは phpinfo();

です。

スレッド セーフティが無効の場合は NTS、有効の場合は TS

構成コマンドでは VC98 が VC6 として認識され、コンパイラーでは MSVC9 (Visual C++ 2008) が VC9 として認識されます

WIN7 の場合: IIS7+NTS+FastCGI+vc9 または Apache+fastcgi+nts+vc6 が最適なパートナーです。

WINXP の場合: Apache+TS+Apache モジュール +vc6 が最適なパートナーです。

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