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.