Warum wird PHP auf Webservern so häufig verwendet? [geschlossen]

14

Mein Webserver verwendet PHP wie auch 76,9% der Webserver laut W3Techs:

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

Der Grund, warum ich PHP benutze, ist eine Trägheit, die daraus entsteht, dass alle anderen es auf Webservern verwenden. Was ist mit PHP, das es auf Webservern so allgegenwärtig machen würde?

(Beachten Sie, dass diese Frage der folgenden ähnlich ist, sie jedoch in eine andere Richtung weist : Warum wird Java für die moderne Entwicklung von Webanwendungen nicht verwendet? )

Deets McGeets
quelle
4
Ich bin immer davon ausgegangen, dass die Installation unter Apache einfach ist und fast alle Webserver Apache sind.
maple_shaft
14
PHP ist die Sprache, die beweist, dass fast jeder programmieren kann, fast alle jedoch nicht. Es ist das Visual Basic der Web-Generation.
Paul Tomblin
2
Ich möchte noch einen anderen Punkt ansprechen: PHP hat gute Abstraktionen für Websites - es ist cachefreundlich, es hat einen unveränderlichen Anforderungs- / Antwortzyklus, es macht Sie nicht zum Umgang mit Ressourcenmanagement, es macht Sie nicht zum Umgang mit Datenstrukturen, es ist Dynamic Nature funktioniert gut mit Datenbanken und verfügt über eine Vielzahl integrierter Funktionen, sodass Pakete seltener sind und die Bereitstellung einfach ist. Ich mag PHP nicht, aber es ist sehr einfach, ein Argument dafür zu finden - ich bin nicht überzeugt, aber es ist einfach zu machen.
Benjamin Gruenbaum

Antworten:

41

PHP ist eine Sprache, die speziell für die Webprogrammierung mit integrierter Integration in die beliebteste Open-Source-Datenbank MySQL entwickelt wurde.

  • Einfacher Einstieg: Als Anfänger ist es einfach, mit PHP zu beginnen. Der Benutzer muss nur ein paar PHP-Tags mit zB einer for-Schleife in die vorhandenen HTML-Dateien einfügen und diese dann auf den Server hochladen und das Ergebnis oder eine Fehlermeldung sehen. Dynamische Typisierung und assoziative Arrays erleichtern auch den Einstieg in PHP.

  • Einfach zu bedienen: Im Vergleich zu den meisten Lösungen wie z. B. Java muss PHP nicht kompiliert werden. Sie müssen lediglich das Skript schreiben, es auf den Server hochladen und dann den Browser aktualisieren.

  • Integrierte Datenbankunterstützung: PHP hat (größtenteils) eine integrierte Unterstützung für die gängigsten Datenbanken, wie z. B. MySQL. Dies bedeutet, dass es einfach ist, Datenbanken zu verwenden. Es müssen keine zusätzlichen Treiber installiert werden, nur um die mysql-Funktionen zu verwenden. Das benutzerfreundliche webbasierte Admin-Tool PHPMyAdmin (veröffentlicht 1998) ist auch wichtig für den Erfolg von PHP in Kombination mit MySQL.

  • Alte Sprache (seit 1995) mit großer Anwenderbasis: PHP wurde Anfang 1995 populär, da es für die Webprogrammierung entwickelt wurde. Seitdem ist die Benutzerbasis gewachsen und es stehen nun viele weborientierte Frameworks und Bibliotheken zur Verfügung. Einige Beispiele sind Blogg-Systeme und E-Shopping-Plattformen.

  • Günstiges Hosting: PHP existiert schon lange und funktioniert sowohl unter Linux als auch unter Windows. Viele Webserver unterstützen es. Es ist kein Problem, Hosting mit vorinstalliertem PHP zu finden.

Jonas
quelle
1
Markiere dies als Antwort, du musst nicht weiter gehen: P. Nette Antwort @Jonas
Pankaj Upadhyay
Die meisten Punkte hier gelten auch für klassisches ASP. Oh, und natürlich auch JSP.
Adriano Carneiro,
4
@Adrian: 1) PHP wurde vor JSP und ASP veröffentlicht. 2) Es ist einfacher, MySQL mit PHP zu verwenden, da Sie nicht mit ODBC oder JDBC und Treibern umgehen müssen. 3) ASP war zu dieser Zeit unter Linux (billiges Hosting) nicht einfach und weit verbreitet. 4) Java mit seiner statischen Typisierung ist für Anfänger etwas schwieriger zu starten.
Jonas
1
@Jonas, du bestätigst meinen Standpunkt größtenteils: 1) Es war die einzige anständige Websprache, also am richtigen Ort, zur richtigen Zeit. 3) LAMP, darum geht es in meinem Beitrag. Nehmen Sie es ruhig, ich sage nicht, dass PHP schlecht ist. Ich sage nur, warum es populär wurde: Es füllte eine Lücke, das war's.
Adriano Carneiro
9
"Easy to start with" ist meiner Meinung nach das, was es auslöste. Perl existierte und konnte alles tun, was PHP konnte. Aber PHP war für einen Anfänger viel einfacher . Und ich vermute, die Community war auch für Anfänger freundlicher. PHP gefüllt die Lücke , die VB für Windows - Programmierung haben - leicht genug , dass die Menschen beginnen konnten auf eigene Faust und tatsächlich etwas zu schaffen.
GroßmeisterB
10

Aus dem gleichen Grund ist MySQL so beliebt: Es war zur richtigen Zeit am richtigen Ort.

Mit dem Linux-Server-Boom in den 90er-Jahren wurde die LAMP-Plattform (Linux-Apache-MySQL-PHP) als zuverlässige und vor allem kostenlose Option in Szene gesetzt.

Als Randnotiz nehmen Sie MySQL zu der Zeit. Dies waren vor nicht allzu langer Zeit zwei fehlende Funktionen von MySQL (meines Erachtens gibt es vielleicht noch mehr) :

  • Keine Auslöser
  • Nicht vollständig ACID- konform

Wie wurde eine Datenbank, die nicht einmal mit ACID (Atomicity-Consistency-Isolation-Durability) kompatibel war, so beliebt? Gleiche Antwort wie PHP: Es war zur richtigen Zeit am richtigen Ort.

Lesen Sie weiter über den "richtigen Ort zur richtigen Zeit" bei LAMP-Komponenten:

Adriano Carneiro
quelle
3
Wenn "es war am richtigen Ort zur richtigen Zeit" die Antwort ist, dann sollten Perl und CGI mit C die gleiche Popularität gesehen haben.
Jonas
2
"Wie wurde eine Datenbank, die nicht einmal ACID-konform war, so beliebt?" - das ist einfach ... es war den meisten Leuten einfach nicht so wichtig. MySQL war für die meisten Webanwendungen zuverlässig genug . Verlässlich genug für eine Bank? Wahrscheinlich nicht. Für ein Webforum? Ja.
GroßmeisterB
Ich hatte einen Kollegen der schreien würde "aber MySQL ist kaum ein RDBMS!". Das finde ich amüsant. Popularität ist eine lustige Sache. Wir - Softwareentwickler - dürfen keine Trendsklaven sein, wir müssen weiter lernen, um weiterarbeiten zu können. Wer eine Technologie zu sehr verteidigt, lässt sie mit geringerer Wahrscheinlichkeit los. Und das ist immer beruflich gefährlich. Dieses Thema ist für mich vorbei. :)
Adriano Carneiro
8

Wenn Sie sich umschauen, verwenden die meisten Leute, die PHP verwenden, heutzutage Wordpress, Drupal, Joomla und dergleichen. Oder eine von 10.000 kostenlosen, beliebten Apps, die mit einem billigen PHP-Host und einer kleinen Konfiguration praktisch sofort funktionieren. Oft wird es nicht installiert, weil irgendjemand etwas macht, das auf PHP läuft. Die einfachste Option ist, etwas zu verwenden, das auf PHP basiert.

Wyatt Barnett
quelle
7

Ich bringe mir gerade PHP bei, also kann ich vielleicht antworten.

Eine PHP-Quellcodedatei kann eine Mischung aus HTML, JavaScript und PHP enthalten, sodass es wirklich einfach zu sein scheint, einfache Webanwendungen zum Laufen zu bringen. Komplexere Interaktionen, die in einer JSP-Situation viel Java oder in einer CGI-BIN-Situation einige seltsame Verzerrungen erfordern würden, werden von den PHP-Builtins abgedeckt: Sie müssen nicht einmal wissen, ob ein HTTP-GET oder -POST Ihren aufgerufen hat Code, alles, was Ihr Code wissen möchte, befindet sich in _REQUEST- oder _SERVER- oder _COOKIE-globalen Variablen.

PHP-the-langauage wird sehr schnell analysiert und ausgeführt, sodass Sie beim Generieren von HTML keinen großen Leistungseinbruch bemerken, anstatt nur eine Menge statischer HTML-Dateien zu haben.

PHP-the-Interpreter verfügt über Bibliotheksaufrufe für nahezu jedes Open-Source-DBMS und viele proprietäre, sodass eine Web-App im 3-Tier-Stil einfach aussieht. PHP-the-Interpreter enthält Bibliotheksaufrufe für viele andere gängige Situationen (auch als "Use Cases" bezeichnet), sodass Sie nicht viel Code selbst schreiben müssen. Rufen Sie einfach die Bibliothek auf. Genau wie bei J2EE "Enterprise-Apps" verschiebt sich das Problem von dem Wissen, wie man programmiert, zu dem Wissen, wie man Bibliotheksmaterial nachschlägt. Dies wird durch das sehr anständige PHP-Handbuch von php.net unterstützt.

Als Programmiersprache hat PHP nicht viele exotische Konstrukte oder unterscheidet sich zu sehr von C, FORTRAN 4 oder Pascal, sodass Programmierer, die bereits eine Sprache kennen, leicht die Programmiersprache PHP lernen können.

Bruce Ediger
quelle
3

Es gibt zwei Schlüsselpunkte für den Erfolg von PHP: Das Timing und der Fokus auf Shared Hosting.

Am Anfang war das Web statisch. Web-Server konnten nur vorgeneriertes HTML verbreiten, was offensichtlich nach einiger Zeit nicht mehr ausreichte. Daher erweiterte das NCSA-Team 1993 seinen Web-Server (den Vorgänger von Apache httpd) um eine Technologie namens CGI, mit der bestimmte Programme vom Web-Server aus aufgerufen werden konnten was HTML (oder andere Inhalte) im laufenden Betrieb generieren könnte. Das war großartig, da die Leute all die Dinge tun konnten. Eine zu diesem Zweck damals gebräuchliche Sprache war Perl. Perl ist eine starke Sprache in der Textverarbeitung, die eine Schlüsseleigenschaft für die Verarbeitung von HTTP-Anforderungsdaten und die Erzeugung von HTML ist. Also haben die Leute es benutzt.

Aber es gab ein Problem: Für jede einzelne Anforderung, die der Webserver ausführen musste, musste Perl das Skript initialisieren und ausführen. Dies verursachte einige Kopfschmerzen. Eine Lösung war mod_perl . 1997. mod_perl ist ein Modul für den Apache-Webserver, das den Perl-Interpreter direkt in den Webserver-Prozess einbettet, sodass kein zusätzlicher Start erforderlich war.

Aber auch dieser Ansatz hatte ein Problem: mod_perl war extrem leistungsfähig und hatte Zugriff auf die gesamte Serverkonfiguration. Sie könnten nicht einen Server zum Hosten mehrerer unabhängiger Clients verwenden, da diese den anderen Personen leicht Schaden zufügen könnten - sei es absichtlich oder aus Versehen. Und da kam PHP her.

PHP wurde so entwickelt, dass es als Apache-Modul ausgeführt werden kann (und somit nicht für jede Anforderung den Start-Hit hat), bietet jedoch eine Shared-Nothing-Umgebung für alle Anforderungen. Sobald eine Anforderung abgeschlossen war, gingen alle Informationen verloren und eine nachfolgende Anforderung an einen anderen virtuellen Host wurde unabhängig bedient. PHP bot auch Funktionen zur Zugriffsbeschränkung an (safe_mode, open_base_dir). Mit dieser architektonischen Wahl könnten Unternehmen PHP auf ihrem Server installieren und Kunden einen FTP- (oder ähnlichen) Zugang zum Hochladen ihrer Dateien gewähren und so viele Kunden auf einem einzigen Computer ohne viel Arbeit hosten. Dies führte zu einer Konkurrenz, die zu günstigen Preisen für PHP-basiertes Hosting führte und PHP zu einer allgegenwärtigen Plattform machte.

Zusätzlich hatte PHP einige Vorteile gegenüber Perl, wie das Mischen von HTML- und PHP-Code oder den direkten Zugriff auf Anforderungsvariablen (siehe auch register_globals), was in Perl schwieriger war (benutzerdefiniertes Parsen oder Abhängigkeit von CGI.pm), was den Entwicklern gefiel.

Ein weiterer Aspekt, der PHP damals erfolgreich machte, war die gute Unterstützung unter Windows. Perl oder andere Sprachen unter Windows zum Laufen zu bringen war schwierig, aber zu dieser Zeit waren viele Entwickler, die Windows zu Hause verwendeten, und Virtualisierung oder Container noch keine Sache. PHP lief problemlos unter Windows, sodass die Leute es für die Entwicklung verwenden und dann die Dateien packen und unter Linux bereitstellen konnten. Zum Beispiel müssten Sie mit Perl die richtige Perl-Distribution bekommen und dann prüfen, welche Module überhaupt verfügbar sind usw.

Was ist mit anderen Sprachen? Kompilierte Sprachen wie C oder C ++ haben nie Anklang gefunden, da die Skripterstellung den sich schnell entwickelnden Markt besser bedient. Java existierte, aber Java Virtual Machines erforderten viel mehr Ressourcen und gemeinsames Hosting, so wie es PHP unterstützt, was kaum machbar war. Die Investitionen in Harddware waren viel höher. ASP (als Vorgänger von ASP.Net) war an die Windows-Plattform gebunden und beschränkte sich auf Organisationen, die bereits Windows ausführen und die Lizenzkosten nicht fürchten, und auch hier keinen Shared-Hosting-Support.

Verschiedene andere Technologien wurden hergestellt, waren jedoch kommerziell (Cold Fusion oder Netscape Server mit serverseitigem JavaScript) und schränkten ihre Reichweite ein oder schlossen sie erst ab, als Ruby-on-Rails auf den Markt kam Aufmerksamkeit, aber zu diesem Zeitpunkt war PHP bereits bei einer großen Community sehr beliebt und gut etablierte Software (wie Wordpress oder Drupal) erschwerten den Wettbewerb - zumal die Entwicklung von PHP nie aufhörte und immer noch voranschreitet.

johannes
quelle
1

Seien wir ehrlich, PHP ist billig, leicht zu erlernen, hat eine große Community, man kann es überall hosten und es hat schon viel gegeben. Wenn Sie also denken, dass jemand das Internet nutzt, um in einer kleinen / mittleren Branche schnell Geld zu verdienen, und dafür einen Entwicklungsbereich mit einer praktisch nicht vorhandenen Infrastruktur schaffen muss, dann klingt PHP (zunächst einmal) großartig.

Ich denke also, PHP ist eine großartige Möglichkeit, um mit ein paar Programmierern und einem kleinen Computer als Server schnell Geld zu verdienen.

Guiman
quelle