web-dev-qa-db-ja.com

PHPがWebサーバーでそれほど頻繁に使用されるのはなぜですか?

W3Techsによると、私のWebサーバーはPHPを使用しており、Webサーバーの76.9%を使用しています:

http://w3techs.com/technologies/overview/programming_language/all

私がPHPを使用する理由は、Webサーバー上で他の人がそれを使用しているのを見ることから生まれた慣性です。PHP Webサーバー?

(この質問は次の質問に似ていますが、方向が異なります: Java最近のWebアプリケーション開発に使用されないのはなぜですか?

14
Deets McGeets

PHPは、最も人気のあるオープンソースデータベースMySQLとの統合が組み込まれたWebプログラミング用に特別に設計された言語です。

  • 簡単に始められる:初心者としては、PHPで簡単に始めることができます。ユーザーはいくつかのPHPタグを追加するだけです。 forループが既存のHTMLファイルであり、それをサーバーにアップロードすると、結果またはエラーメッセージが表示されます。動的型付けと連想配列により、PHPの使用も簡単に開始できます。

  • 使いやすい:たとえば、ほとんどのソリューションと比較Java、PHPはコンパイルする必要がないため、スクリプトを記述してサーバーにアップロードし、ブラウザを更新するだけです。

  • 統合データベースのサポート: PHPには、MySQLなどの最も人気のあるデータベースのサポートが(ほとんど)組み込まれているため、データベースの使用を簡単に開始でき、追加のmysql-functionsを使用するには、ドライバーをインストールする必要があります。使いやすいWebベースの管理ツールPHPMyAdmin(1998年にリリース)は、MySQLと組み合わせたPHPの成功にとっても重要です。

  • 大きなユーザーベースを持つ古い言語(1995年以降): PHPそれはWebプログラミング用に設計されたため、初期(1995年)に人気を博しました。それ以来、ユーザーベースは成長しました現在、多くのWeb指向のフレームワークとライブラリが利用可能であり、bloggシステムやeショッピングプラットフォームなどがその例です。

  • 格安ホスティング:以来PHPは長い間存在し、LinuxとWindowsの両方で良好に動作し、多くのWebサーバーがそれをサポートしています。ホスティングを見つけるのに問題はありません。 PHPがプリインストールされています。

41
Jonas

同じ理由で、MySQLはとても人気があります。それは、適切なタイミングで適切な場所にありました。

90年代のLinuxサーバーブームに伴い、LAMPプラットフォーム(Linux-Apache-MySQL-PHP)が信頼性の高い、最も重要な無料のオプションとして登場しました。

ちなみに、そのときはMySQLを取り上げます。これらは、MySQLに欠けていた2つの機能でした(私の頭の上では、もっとあるかもしれません)それほど昔ではありません

ACID(atomicity-consistency-isolation-durability)に準拠していないDBが、どのようにして人気を博したのですか? PHPと同じ答え:適切なタイミングで適切な場所にありました。

LAMPコンポーネントの「適切な場所、適切なタイミング」についてさらに読む:

10

周りを見渡してみると、PHPを実行しているほとんどの人は、Wordpress、Drupal、Joomlaなどを実行しています。または、無料で人気のある10,000のアプリの1つです。 PHPホストと小さな設定。多くの場合、誰もが何かを実行しているためにインストールされませんPHPので、最も簡単なオプションは何かを使用することですPHP上に構築されました。

8
Wyatt Barnett

今はPHPを教えているので、答えられるかもしれません。

PHPソースコードファイルには、HTML、JavaScript、PHPを混在させることができるため、単純なWebアプリケーションを簡単に起動して実行できます。 JSPの状況では多くのJavaを必要とするより複雑な相互作用、またはCGI-BINの状況ではいくつかの奇妙なゆがみがPHPビルトインに対応します。 HTTP GETまたはPOSTがコードを呼び出したかどうかを知る必要さえあります。コードが知りたいすべてのことは、_REQUESTまたは_SERVERまたは_COOKIEグローバル変数に存在します。

PHP-the-langauageは非常に迅速に解析および実行されるため、静的なHTMLファイルの束を用意するだけでなく、HTMLを生成するときにパフォーマンスが大幅に低下することはありません。

PHP-the-interpreterには、ほぼすべてのオープンソースDBMSおよび独自仕様の多くのライブラリー呼び出しが含まれているため、3層スタイルのWebアプリを簡単に作成できます。 PHP-the-interpreterには、他の多くの一般的な状況(別名「ユースケース」)のライブラリー呼び出しが含まれているため、自分で多くのコードを記述する必要はなく、ライブラリーを呼び出すだけです。つまり、J2EEの「エンタープライズアプリ」と同じように、問題は、コーディングの仕方を知ることから、ライブラリの内容を調べる方法を知ることに移ります。これは非常にまともなphp.net PHPマニュアルによって支援されています。

プログラミング言語としてのPHPは、エキゾチックな構成要素が多くない、またはC、FORTRAN 4、Pascalなどと大きく異なるため、1つの言語をすでに知っているプログラマは簡単にPHPを選択できます。 -プログラミング言語。

7
Bruce Ediger

PHPの成功には2つの重要なポイントがあります。タイミングと共有ホスティングへの焦点です。

当初、ウェブは静的でした。 Webサーバーは事前に生成されたHTMLのみを配布できましたが、明らかにそれだけでは十分ではなかったため、1993年にNCSAチームはWebサーバー(Apache httpdの前身)を [〜#〜] cgiという技術で拡張しました[〜#〜] HTML(または他のコンテンツ)をその場で生成できるWebサーバーから特定のプログラムを呼び出すことができました。人々がすべてのことをすることができたので、これは素晴らしかったです。その目的で当時よく使用されていた言語はPerlでした。 Perlはテキスト処理に強い言語であり、HTTP要求データを処理してHTMLを生成するための重要なプロパティです。だから人々はそれを使った。

しかし、問題がありました。Webサーバーが外部プログラムを実行する必要があるすべての要求に対して、Perlはスクリプトを初期化して実行する必要がありました。これはかなりの頭痛を引き起こしました。解決策は mod_Perl 約caでした。 1997. mod_Perlは、PerlインタープリターをWebサーバープロセスに直接埋め込むApache Webサーバー用のモジュールであるため、追加の起動は必要ありませんでした。

しかし、このアプローチにも問題がありました。mod_Perlは非常に強力であり、完全なサーバー構成にアクセスできました。 1つのサーバーを使用して複数の独立したクライアントをホストすることはできません。故意であれ、偶然であれ、他の人々に簡単に害を及ぼす可能性があるからです。そして、そこにPHPが登場しました。

PHPは、Apacheモジュールとして実行できるように構築されています(したがって、要求ごとに起動ヒットがありません)が、要求間で何も共有しない環境を提供します。リクエストが完了すると、すべての情報が失われ、別の仮想ホストへの後続のリクエストは個別に処理されます。 PHPはアクセスを制限する機能も提供しました(safe_mode、open_base_dir)。そのアーキテクチャの選択により、企業はサーバーにPHPをインストールして顧客にFTP(または同様の)を提供できます)自分のファイルをアップロードするためのアクセスと、多くの顧客を1台のマシンで多くの作業をせずにホストしているため、PHPベースのホスティングの価格が安くなり、PHPがユビキタスプラットフォームになっています。

さらに、PHPは、HTMLとPHPコードまたはリクエスト変数(register_globalsも参照)への直接アクセス)を混合できるようにするなど、Perlよりもいくつかの利点がありました。開発者が好んだより難しい(カスタム解析またはCGI.pmへの依存)。

PHP=当時成功したもう1つの側面は、Windowsでの優れたサポートでした。Perlや他の言語をWindowsで動作させることは困難でしたが、当時、多くの開発者が自宅でWindowsを使用して仮想化を行っているか、 PHPはWindowsで簡単に実行できたので、開発に使用してファイルをまとめ、Linuxにデプロイできました。たとえば、Perlでは、正しいPerlディストリビューションを取得し、どのモジュールが使用可能かを確認します。

他の言語はどうですか? CやC++のようなコンパイルされた言語は、スクリプティングが急速に発展する市場により良いサービスを提供するため、勢いがつきません。 Javaは存在しましたが、Java方法でより多くのリソースと共有ホスティングを仮想マシンに必要としましたPHPは、それを実行することはほとんど不可能でした。ハードウェアへの投資ははるかに高かったASP(ASP.Netの前身として))はWindowsプラットフォームにバインドされており、すでにWindowsを実行していて、ライセンスコストを心配していない組織に限定されていました。 、そして再び共有ホスティングのサポートはありません。

生産されたが、商用(サーバー側JavaScriptを備えたコールドフュージョンまたはNetscapeサーバー)である他のさまざまなテクノロジーがリーチを制限するか、Ruby-on-Railsが登場するまでリーチから外れませんでした。注意、しかしその時までにPHPはすでに大規模なコミュニティと定評のあるソフトウェア(WordpressまたはDrupal)のような)ですでに非常に人気があり、競争を難しくしていました-特にPHPの開発が止まることはなく、現在も続いています。

3
johannes

それに直面しましょう、PHPは安価で学びやすく、大規模なコミュニティがあり、どこでもホストできます。また、多くの人が利用しています。したがって、インターネットを中小規模の業界で迅速にお金を稼ぐ方法と、実際には存在しないインフラストラクチャでそれを行うための開発領域を作成する必要がある方法PHPは、(最初​​から)非常に素晴らしいですね。

だから私はPHPはたくさんのプログラマーと小さなコンピューターをサーバーとして使ってお金を早く稼ぐための素晴らしい方法だと思います。

1
guiman