編集者: Maizi
PHP のバージョンを選択するとき、誰もが混乱するはずです。非常に多くのバージョンがあります。どれを選択すればよいでしょうか?
質問:
Windows Server 2008 r2 を使用する新しいサーバーを購入しました。 PHP 5.4環境を設定します。
しかし、開発前は 2003 と PHP バージョン 5.2 を使用していましたが、それを新しいサーバーに移植した場合、プログラムの実行に影響はありますか?それとも他に注意する必要がある問題があるのでしょうか?
PHP はメジャー バージョンに対して下位互換性のあるアップグレード方法を採用しています。つまり、5.5 は 5.1 ~ 5.4 と互換性があります。とはいえ、実際の互換性は楽観的なものではありません。皆さん PHP 関係者から良い解決策を期待しないでください。 2013 年 9 月現在のバージョンは 5.2.17 5.3.27 5.4.17 5.5.3
このバージョンは最も広くサポートされているバージョンであると言えます。 Drupal7.23、Joomla2.5、およびほとんどの国内ソフトウェア: dedecms5.7、discuzX3 など、ほとんどのオープン ソース ソフトウェアはまだこのバージョンを使用しています。特別な要件がない場合は、最新バージョンが引き続き 5.2 をサポートしています。このバージョンをインストールすると、心配も労力も軽減されますが、長期的には放棄される可能性があります。現在、多くのホスティング会社は人件費を節約するために PHP のバージョンをアップグレードするのが面倒で、とにかく基本的にサポートしています。 (ここに一言入れてください。より多くのインストール環境に対応するために、国産ソフトウェアは非常によくできています。PHP5.1 でもサポートできます (discusX3 はサポートしていません)。最もまれなことは、パフォーマンスが低いことです。これは実際には簡単ではありません。) このバージョンを使用することをお勧めします。
このバージョンの名前は 5 で始まりますが、多くの人はこれが PHP6.0 バージョンの始まりであると考えており、パフォーマンスが向上しているためです。多くの API は変更により 5.2 との互換性があまり良くありません。一部のオープン ソース ソフトウェアは 5.2 ~ 5.3 と互換性があると主張していますが、多くは単に 5.2 のみを諦めているようです。 5.3以降をサポートします。 Drupal7 の場合は、サポートが非常に優れているため、このバージョンを使用することを強くお勧めします。このバージョンはDrupal8でも使用でき、サポートもかなり充実しています。このバージョンは広く使用されており、パフォーマンスと互換性のバランスが取れています。
5.4 は現在比較的完成に近づいており、安定性とパフォーマンスも良好です。将来のアップグレードの重要なバージョンとなり、次のバージョンでサポートされます。 Drupal7.X それはまずまずですが、サードパーティのモジュールはまだ完全ではありません。後でアップグレードするのが面倒な場合は、このバージョンを 1 ステップでインストールできます。
5.3 以降、以降のバージョンは基本的にパフォーマンスの向上に重点が置かれ、関数などの下位互換性が確保されます。 5.5 からは、より強力なパフォーマンスを備えた 64 ビット バージョンがあるようです。私は試していないので、あえてコメントしません。
オープンソース ソフトウェアが PHP5.3 のインストールを推奨している場合は、5.5 ではなく 5.3 を使用するだけで済みます。どうせ互換性があるし、パフォーマンスも良いと考えるかもしれません。新しいものを使用しないのはなぜでしょうか。そうは言っても、オープンソースソフトウェアは通常、開発時には特定の環境で開発されますが、どんなに互換性が優れていても、予期せぬ事態が発生することはご存知のとおりです(チームがどれほど強力であっても、それは不可能です)。すべての関数 API で互換性テストを実施すると、非常にひどい作業負荷になります!)、特定の環境でのみテストおよび最適化され、互換性の問題があることがわかっていても、チームは上位バージョンと互換性を持たせるために変更しません。硬いというわけではありませんが、安全性と安定性を考慮したものです。オープンソースの雰囲気では、「最新が最善」ではなく「十分であることが最善」という意識を持つ必要があります。たとえば、Joomla 3.1 は 5.4 ~ 5.5 ではうまく動作せず、インストールさえ成功できません。しかし、Drupal は (このマシン上では) 5.5.3 で正常に動作しますが、これは特殊なケースだと思います。しかし、動作中に予期せぬエラーが発生したようです。バージョンの問題ではないことを願います。
Apache は通常、非スレッドセーフを選択しますが、IIS は後者 (FAST-CGI) を選択します。私は選択しませんはい、シン兄弟は正しいです。
TS は、スレッド セーフを指します。通常、このバージョンは、IIS が ISAPI モードでロードされるときに選択されます。
NTS は、None-Thread Safe の略で、高速 CGI モードで実行する場合に選択され、パフォーマンスが向上します。
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 を使用してください。スレッド セーフ (NTS、非スレッド セーフ) バージョンを使用すると、効率が向上します。
システムが 64 ビットの場合は 64 ビットを選択し、32 ビットの場合は 32 ビットを選択してください。 、シン兄さん。