Dlaczego PHP jest tak często używane na serwerach WWW? [Zamknięte]

14

Mój serwer WWW używa PHP, podobnie jak 76,9% serwerów internetowych według W3Techs:

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

Powodem, dla którego używam PHP, jest bezwładność zrodzona z tego, że wszyscy używają go na serwerach WWW. Co takiego jest w PHP, dzięki czemu jest tak wszechobecny na serwerach WWW?

(Pamiętaj, że to pytanie jest podobne do poniższego, ale prowadzi je w innym kierunku: Dlaczego Java nie jest używana do tworzenia nowoczesnych aplikacji internetowych? )

Deets McGeets
źródło
4
Zawsze zakładałem, że jest łatwy do zainstalowania na Apache i prawie wszystkie serwery WWW to Apache.
wałek klonowy
14
PHP to język, który dowodzi, że chociaż prawie każdy może programować, prawie wszyscy nie powinni. To Visual Basic generacji sieci.
Paul Tomblin
2
Chcę argumentować inną kwestię - PHP ma dobre abstrakcje dla stron internetowych - jest przyjazny dla pamięci podręcznej, ma niezmienny cykl zapytań / odpowiedzi, nie zmusza cię do zarządzania zasobami, nie zmusza do radzenia sobie ze strukturami danych, jest natura dynamiczna działa dobrze z bazami danych i ma mnóstwo wbudowanych funkcji, dzięki czemu pakiety są rzadsze, a ich wdrożenie jest łatwe. Nie lubię PHP, ale bardzo łatwo jest to uzasadnić - nie jestem przekonany, ale łatwo to zrobić.
Benjamin Gruenbaum,

Odpowiedzi:

41

PHP jest językiem specjalnie zaprojektowanym do programowania w sieci z wbudowaną integracją z najpopularniejszą bazą danych MySQL typu open source.

  • Łatwo zacząć od: jako początkujący łatwo jest zacząć od PHP. Użytkownik musi tylko dodać kilka tagów PHP z np. Pętlą for w istniejących plikach HTML, a następnie przesłać go na serwer i zobaczyć wynik lub komunikat o błędzie. Dynamiczne pisanie i tablice asocjacyjne ułatwiają także korzystanie z PHP.

  • Łatwy w użyciu: W porównaniu do większości rozwiązań, takich jak np. Java, PHP nie wymaga kompilacji, więc wystarczy napisać skrypt, a następnie przesłać go na serwer, a następnie zaktualizować przeglądarkę.

  • Zintegrowana obsługa baz danych: PHP ma (przeważnie) wbudowane wsparcie dla najpopularniejszych baz danych, takich jak np. MySQL, co oznacza, że ​​łatwo jest rozpocząć korzystanie z baz danych, nie trzeba instalować żadnych dodatkowych sterowników, aby korzystać z funkcji mysql. Łatwe w użyciu narzędzie administracyjne PHPMyAdmin (wydane w 1998 r.) Jest również ważne dla sukcesu PHP w połączeniu z MySQL.

  • Stary język (od 1995) z dużą bazą użytkowników: PHP stał się popularny wcześnie (1995), ponieważ został zaprojektowany do programowania w Internecie. Od tego czasu baza użytkowników powiększyła się i obecnie dostępnych jest wiele frameworków i bibliotek zorientowanych na sieć. Niektóre przykłady to systemy blogg i platformy e-zakupów.

  • Tani hosting: Ponieważ PHP istnieje od dawna i działa dobrze zarówno na Linuksie, jak i na Windowsie, a wiele serwerów obsługuje to. Nie ma problemu ze znalezieniem hostingu z preinstalowanym PHP.

Jonas
źródło
1
zaznacz to jako odpowiedź, nie musisz iść dalej: P. Dobra odpowiedź @Jonas
Pankaj Upadhyay
Większość punktów dotyczy również klasycznej ASP. Aha, a także zwykły plik JSP.
Adriano Carneiro,
4
@Adrian: 1) PHP zostało wydane przed JSP i ASP. 2) Łatwiej jest używać MySQL z PHP, ponieważ nie musisz obsługiwać ODBC lub JDBC i sterowników 3) ASP nie była łatwa i rozpowszechniona w tym czasie na Linuksie (tani hosting). 4) Java z pisaniem statycznym jest nieco trudniejsza dla początkującego.
Jonas
1
@Jonas, w głównej mierze wzmacniasz mój punkt widzenia: 1) był to jedyny przyzwoity język internetowy, więc właściwe miejsce, odpowiedni czas. 3) LAMPA, o tym właśnie jest mój post. Spokojnie, nie mówię, że PHP jest złe. Mówię tylko, dlaczego stał się popularny: wypełnił pustkę, to wszystko.
Adriano Carneiro,
9
„Łatwy na początek” to, jak sądzę, to, co go uruchomiło. Perl istniał i mógł robić wszystko, co PHP. Ale PHP było o wiele łatwiejsze dla początkujących. Podejrzewam, że społeczność była również przyjaźniejsza dla nowicjuszy. PHP wypełniło pustkę, którą VB zrobiło dla programowania Windows - na tyle łatwo, że ludzie mogli zacząć samodzielnie i coś stworzyć.
GrandmasterB
10

Z tego samego powodu MySQL jest tak popularny: był we właściwym miejscu we właściwym czasie.

Wraz z boomem na serwer Linux w latach 90. platforma LAMP (Linux-Apache-MySQL-PHP) stała się niezawodną i, co najważniejsze, darmową opcją.

Na marginesie, weź MySQL w tym czasie. Były to dwie brakujące funkcje MySQL (od początku mojej głowy, może być ich więcej) jeszcze niedawno :

  • Brak wyzwalaczy
  • Nie w pełni zgodny z ACID

W jaki sposób baza DB, która nie była nawet zgodna z ACID (atomowość-spójność-izolacja-trwałość), stała się tak popularna? Ta sama odpowiedź, co PHP: było we właściwym miejscu we właściwym czasie.

Dalsze informacje na temat „właściwego miejsca we właściwym czasie” na komponentach LAMP:

Adriano Carneiro
źródło
3
Jeśli odpowiedź brzmi „było we właściwym miejscu we właściwym czasie”, to Perl i CGI z C powinny zobaczyć tę samą popularność.
Jonas
2
„W jaki sposób baza DB, która nie była nawet zgodna z ACID, stała się tak popularna?” - to proste ... to nie było tak ważne dla większości ludzi. MySQL był wystarczająco niezawodny do większości zastosowań internetowych. Wiarygodne wystarczająco wcześnie dla banku? Prawdopodobnie nie. Na forum internetowym? Tak.
GrandmasterB
Miałem kolegę, który krzyczałby „ale MySQL prawie nie jest RDBMS!”. Uważam to za zabawne. Popularność to zabawna rzecz. My - twórcy oprogramowania - nie możemy być niewolnikami trendów, musimy się uczyć, aby dalej pracować. Każdy, kto zbyt mocno broni technologii, rzadziej puści. A to zawsze jest zawodowo niebezpieczne. Ten temat jest już dla mnie zakończony. :)
Adriano Carneiro,
8

Jeśli się rozejrzysz, większość ludzi korzystających z PHP korzysta obecnie z Wordpress, Drupal, Joomla i tym podobnych. Lub jedna z 10 000 darmowych, popularnych aplikacji, które praktycznie działają od razu po instalacji z tanim hostem PHP i niewielką konfiguracją. Wiele razy jest instalowany nie dlatego, że ktoś robi coś, co działa na PHP, a najłatwiejszą opcją jest użycie czegoś zbudowanego na PHP.

Wyatt Barnett
źródło
7

Uczę się teraz PHP, więc może mogę odpowiedzieć.

Plik kodu źródłowego PHP może zawierać kombinację HTML, JavaScript i PHP, więc uruchomienie prostych aplikacji internetowych wydaje się naprawdę łatwe. Bardziej złożone interakcje, które wymagałyby dużej ilości Javy w sytuacji JSP lub dziwnych zniekształceń w sytuacji CGI-BIN, są pokrywane przez wbudowane PHP: nie musisz nawet wiedzieć, czy HTTP GET lub POST wywoływał twoją kod, wszystko, co Twój kod chce wiedzieć, żyje w zmiennych globalnych _REQUEST lub _SERVER lub _COOKIE.

PHP-the-langauage jest analizowany i wykonywany dość szybko, więc nie zauważysz ogromnego spadku wydajności podczas generowania HTML, a nie tylko posiadania kilku statycznych plików HTML.

PHP-interpreter ma wywołania biblioteczne dla prawie wszystkich systemów DBMS typu open source, a także wiele zastrzeżonych, dzięki czemu aplikacja internetowa w stylu 3-warstwowym wygląda na łatwą. PHP-interpreter zawiera wywołania biblioteki dla wielu innych wspólnych sytuacji (aka „przypadków użycia”), więc nie musisz pisać dużo kodu sam, po prostu zadzwoń do biblioteki. Tak więc, podobnie jak „aplikacje korporacyjne” J2EE, problem zmienia się z umiejętności kodowania w umiejętność wyszukiwania zawartości biblioteki. Pomaga temu bardzo przyzwoity podręcznik PHP php.net.

Jako język programowania PHP nie ma zbyt wielu egzotycznych konstrukcji lub zbytnio różni się od, powiedzmy C, FORTRAN 4 lub Pascal, więc programiści, którzy znają już jeden język, mogą łatwo wybrać język programowania PHP.

Bruce Ediger
źródło
3

Istnieją dwa kluczowe punkty sukcesu PHP: czas i nacisk na hosting współdzielony.

Na początku sieć była statyczna. Web-Servers mógł dystrybuować tylko wstępnie wygenerowany HTML, co oczywiście nie wystarczyło po pewnym czasie, więc w 1993 roku zespół NCSA rozszerzył swój serwer WWW (poprzednik Apache httpd) o technologię o nazwie CGI, która umożliwiła wywoływanie określonych programów z serwera WWW który może generować HTML (lub inną treść) w locie. To było wspaniałe, ponieważ ludzie mogli robić wszystkie rzeczy. W tym czasie powszechnie używanym językiem był Perl. Perl jest językiem silnie przetwarzającym tekst, który jest kluczową właściwością do obsługi danych żądań HTTP i tworzenia HTML. Więc ludzie go używali.

Ale pojawił się problem: dla każdego żądania serwer WWW musiał uruchomić program zewnętrzny, Perl musiał zainicjować i uruchomić skrypt. To spowodowało sporo bólu głowy. Rozwiązaniem było mod_perl nadchodzące ok. 1997. mod_perl to moduł serwera Apache osadzający interpreter Perla bezpośrednio w procesie serwera WWW, więc nie było potrzeby dodatkowego uruchamiania.

Ale znowu to podejście miało problem: mod_perl był niezwykle potężny i miał dostęp do pełnej konfiguracji serwera. Nie można użyć jednego serwera do obsługi wielu niezależnych klientów, ponieważ mogą oni z łatwością wyrządzić krzywdę innym ludziom - celowo lub przypadkowo. I tu właśnie przyszedł PHP.

PHP zostało zbudowane w taki sposób, że mogło działać jako moduł Apache (a więc nie miał trafienia startowego dla każdego żądania), ale zapewnia środowisko współdzielenia niczego między żądaniami. Po wykonaniu żądania wszystkie informacje zostały utracone, a kolejne żądanie do innego wirtualnego hosta będzie obsługiwane niezależnie. PHP oferowało również funkcje ograniczające dostęp (tryb_bezpieczny, katalog_wyjści_zasobu). Dzięki takiemu wyborowi architektury firmy mogłyby zainstalować PHP na swoim serwerze i zapewnić klientom FTP (lub podobny) dostęp do przesyłania swoich plików i przez tego hosta wielu wielu klientów na jednym komputerze bez większego nakładu pracy. Spowodowało to konkurencję prowadzącą do niskich cen hostingu opartego na PHP, dzięki czemu PHP stał się wszechobecną platformą.

Dodatkowo PHP miało kilka zalet w stosunku do Perla, takie jak umożliwienie mieszania kodu HTML i PHP lub bezpośredni dostęp do zmiennych żądania (patrz także register_globals), co w Perlu było trudniejsze (niestandardowe parsowanie lub zależność od CGI.pm), co lubili programiści.

Kolejnym aspektem, który sprawił, że PHP odniosło sukces w tamtych czasach, było dobre wsparcie dla systemu Windows. Uzyskiwanie Perla lub innych języków do pracy w systemie Windows było trudne, ale w tamtym czasie wielu programistów używało Windowsa w domu i wirtualizacji lub kontenerów jeszcze nie było. PHP działało łatwo w systemie Windows, aby ludzie mogli go używać do programowania, a następnie spakować pliki i wdrożyć w systemie Linux. Na przykład w Perlu musisz uzyskać prawidłową dystrybucję perla, a następnie sprawdzić, które moduły są w ogóle dostępne itp.

Co z innymi językami? Skompilowane języki, takie jak C lub C ++, nigdy nie zyskały na popularności, ponieważ skrypty lepiej służą szybko rozwijającemu się rynkowi. Java istniała, ale maszyny wirtualne Java wymagały znacznie więcej zasobów i hostingu współdzielonego w sposób, w jaki PHP to obsługuje. Inwestycje w harddware były znacznie wyższe. ASP (jako poprzednik ASP.Net) był związany z platformą Windows, ograniczając ją do organizacji, które już korzystają z systemu Windows i które nie boją się kosztów licencji, i ponownie nie wspierają hostingu współdzielonego.

Różne inne technologie zostały wyprodukowane, ale albo były komercyjne (Cold Fusion lub Netscape Server z JavaScript po stronie serwera) ograniczające ich zasięg lub nie były poza ich zasięgiem aż do pojawienia się Ruby-on-rails, co prawdopodobnie było pierwszym środowiskiem otrzymującym wiele Uwaga, ale do tego czasu PHP było już bardzo popularne w dużej społeczności i ugruntowanym oprogramowaniu (takim jak Wordpress lub Drupal), co utrudnia konkurowanie - zwłaszcza, że ​​rozwój PHP nigdy się nie kończy i wciąż trwa.

Johnnes
źródło
1

Spójrzmy prawdzie w oczy, PHP jest tani, łatwy do nauczenia, ma dużą społeczność, możesz go hostować w dowolnym miejscu i było go wiele. Jeśli więc myślisz, że ktoś używa Internetu jako szybkiego sposobu zarabiania pieniędzy w małej / średniej branży i musi stworzyć obszar programistyczny, aby to zrobić przy praktycznie nieistniejącej infrastrukturze, PHP brzmi całkiem nieźle (na początek).

Myślę więc, że PHP to świetny sposób na szybkie zarabianie pieniędzy z grupą programistów i małym komputerem jako serwerem.

guiman
źródło