PHPがWebサーバーで頻繁に使用されるのはなぜですか?[閉まっている]


14

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

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

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

(この質問は次の質問に似ていますが、異なる方向に向かっていることに注意してください:なぜJavaは最新のWebアプリケーション開発に使用されないのですか?


4
Apacheに簡単にインストールでき、ほぼすべてのWebサーバーがApacheであるため、私は常に想定していました。
maple_shaft

14
PHPは、ほぼすべての人がプログラムできるが、ほとんどすべての人がプログラムできないことを証明する言語です。Web世代のVisual Basicです。
ポールトンブリン

2
私は別の点を議論したい-PHPはウェブサイトのための優れた抽象化を持っています-それはキャッシュフレンドリーで、不変のリクエスト/レスポンスサイクルがあり、リソース管理に対処せず、データ構造に対処しません、動的な性質はデータベースでうまく機能し、多数の組み込み関数があるため、パッケージはより少なく、展開は簡単です。私はPHPが好きではありませんが、それを主張するのは非常に簡単です-私は確信していませんが、作るのは簡単です。
ベンジャミングリュンバウム

回答:


41

PHPは、最も一般的なオープンソースデータベースMySQLとの組み込み統合を備えたWebプログラミング用に特別に設計された言語です。

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

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

  • 統合データベースのサポート: PHPは、MySQLなどの最も一般的なデータベースの(ほとんど)組み込みサポートを備えています。つまり、データベースの使用を開始しやすく、追加のドライバーをインストールする必要がなく、mysql関数を使用するだけです。使いやすいWebベースの管理ツールPHPMyAdmin(1998年リリース)も、MySQLと組み合わせたPHPの成功にとって重要です。

  • 大きなユーザーベースを持つ古い言語(1995年以降): PHPは、Webプログラミング用に設計されたため、早い時期(1995年)に普及しました。それ以来、ユーザーベースは拡大し、現在では多くのWeb指向のフレームワークとライブラリが利用可能です。いくつかの例は、blogg-systemsおよびe-shopping-platformsです。

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


1
これを答えとしてマークすると、さらに進む必要はありません:P。素敵な答え@ジョナス
パンカ

ここでのほとんどのポイントは、従来のASPにも当てはまります。ああ、またプレーンなJSP。
アドリアーノカルネイロ

4
@Adrian:1)PHPはJSPとASPの両方の前にリリースされました。2)ODBCまたはJDBCおよびドライバーを処理する必要がないため、PHPでMySQLを使用する方が簡単です。3)当時、ASPはLinux(簡単なホスティング)で簡単で広く普及していませんでした。4)静的型付けのJavaは、初心者にとって少し難しいです。
ジョナス

1
@ジョナス、あなたは主に私のポイントを補強しています:1)それは唯一のまともなウェブ言語だったので、適切な場所、適切な時間。3)LAMP、それが私の投稿の目的です。また、簡単に考えてください。PHPが悪いと言っているのではなく、なぜ普及したのかを言っているだけです。
アドリアーノカルネイロ

9
「始めるのは簡単だ」と思います。Perlが存在し、PHPでできることはすべてできました。しかし、PHPは、初心者でもまったく簡単に始められました。そして、私はコミュニティも初心者にとってより親しみやすかったと思います。PHPは、VBがWindowsプログラミングのために行った空隙を埋めました。人々が自分で始め実際に何かを作成できるほど簡単です。
グランドマスター

10

同じ理由で、MySQLは非常に人気があります。適切なタイミングで適切な場所に配置されていました。

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

補足として、その時点でMySQLを使用してください。これらは、(私の心の上から、もっとあるかもしれません)のMySQLから2つの欠けている機能していないので、ずっと前に

  • トリガーなし
  • 完全にACIDに準拠していない

ACID(atomicity-consistency-isolation-durability)に準拠していなかったDBが、どのようにして普及したのでしょうか?PHPと同じ答え:それは適切なタイミングで適切な場所にあった。

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


3
「適切なタイミングで適切な場所にあった」という答えが得られた場合、PerlとCを使用したCGIの人気は同じでした。
ジョナス

2
「ACIDに準拠していなかったDBが、どうしてそんなに人気になったのですか?」-それは簡単です...ほとんどの人にとってはそれほど重要ではありませんでした。MySQLは、ほとんどのWeb使用に十分な信頼性を備えていました。銀行にとって早い段階で信頼性が高いですか?おそらくない。Webフォーラムの場合 はい。
グランドマスター

「MySQLはほとんどRDBMSではありません!」と叫ぶ同僚がいました。面白いと思う。人気は面白いものです。私たち-ソフトウェア開発者-はトレンドの奴隷であってはなりません。私たちは働き続けるために学び続けなければなりません。技術を守りすぎる人は誰でも手放す可能性が低くなります。そして、それは常に専門的に危険です。このトピックは私のために終わりました。:)
アドリアーノカルネイロ

8

周りを見ると、最近PHPを実行しているほとんどの人はWordpress、Drupal、Joomlaなどを実行しています。または、安価なPHPホストと小さな構成ですぐに使える10,000の無料の人気アプリの1つです。多くの場合、PHPで実行されるものを誰かが作っているからではなく、PHPでビルドされたものを使用するのが最も簡単なオプションであるため、インストールされます。


7

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

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

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

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

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


3

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

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

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

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

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

さらに、PHPはPerlと比べていくつかの利点がありました。HTMLとPHPのコードを混合したり、開発者が好むPerlでより難しかった(カスタム解析またはCGI.pmへの依存)要求変数(register_globalsも参照)への直接アクセスが可能です。

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

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

生産されたが商用であった他のさまざまなテクノロジー(Cold Fusionまたはサーバー側JavaScriptを備えたNetscape Server)がリーチを制限するか、Ruby-on-railsが登場するまでリーチアウトしませんでした。ただし、その頃にはすでにPHPは大規模なコミュニティや定評のあるソフトウェア(WordpressやDrupalなど)で非常に人気があり、特にPHPの開発が止まることなく継続しているため、競争が難しくなっています。


1

それに直面してみましょう、PHPは安価で、習得が容易で、大きなコミュニティがあり、どこでもホストできます。だから、中小企業でお金を稼ぐ方法としてインターネットを使用し、実際に存在しないインフラストラクチャでそれを行うための開発エリアを作成する方法としてインターネットを使用している人と思うなら、PHPはかなり素晴らしいように思えます(最初から)。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.