Perché PHP è così frequentemente utilizzato sui server Web? [chiuso]


14

Il mio server Web utilizza PHP così come il 76,9% dei server Web secondo W3Techs:

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

Il motivo per cui utilizzo PHP è un'inerzia nata dal vedere tutti gli altri che lo usano sui server web. Cosa c'è in PHP che lo renderebbe così onnipresente sui server Web?

(Si noti che questa domanda è simile alla seguente, ma la porta in una direzione diversa: perché Java non viene utilizzato per lo sviluppo di applicazioni Web moderne? )


4
Ho sempre ipotizzato perché è facile da installare su Apache e quasi tutti i server Web sono Apache.
maple_shaft

14
PHP è la lingua che dimostra che mentre quasi tutti possono programmare, quasi tutti non dovrebbero. È il Visual Basic della generazione web.
Paul Tomblin,

2
Voglio discutere un altro punto - PHP ha buone astrazioni per i siti Web - è amico della cache, ha un ciclo di richiesta / risposta immutabile, non ti fa gestire la gestione delle risorse, non ti fa gestire le strutture di dati, i suoi la natura dinamica funziona bene con i database e ha moltissime funzioni integrate, quindi i pacchetti sono più rari e la distribuzione è semplice. Non mi piace PHP, ma è molto facile fare un caso per questo - non sono convinto ma è facile da fare.
Benjamin Gruenbaum,

Risposte:


41

PHP è un linguaggio appositamente progettato per la programmazione Web con integrazione integrata con il più popolare database open source MySQL.

  • Facile da iniziare: come principiante è facile iniziare con PHP. L'utente deve solo aggiungere alcuni tag PHP con ad esempio un for-loop nei suoi file HTML esistenti e quindi caricarlo sul server e vedere il risultato o un messaggio di errore. La tipizzazione dinamica e gli array associativi facilitano anche l'utilizzo di PHP.

  • Facile da usare: rispetto alla maggior parte delle soluzioni come ad esempio Java, PHP non ha bisogno di essere compilato, quindi è solo per scrivere lo script e quindi caricarlo sul server e quindi aggiornare il browser.

  • Supporto database integrato: PHP ha (principalmente) il supporto integrato per i database più popolari come ad esempio MySQL, il che significa che è facile iniziare a utilizzare i database, non è necessario installare driver aggiuntivi, solo per utilizzare le funzioni mysql. Lo strumento di amministrazione basato sul web PHPMyAdmin (rilasciato nel 1998) è facile da usare per il successo di PHP in combinazione con MySQL.

  • Vecchio linguaggio (dal 1995) con una grande base di utenti: PHP è diventato popolare all'inizio (1995) da quando è stato progettato per la programmazione web. Da allora la base di utenti è cresciuta e ora ci sono molti framework e librerie orientati al web. Alcuni esempi sono i sistemi di blog e le piattaforme di e-shopping.

  • Hosting economico: dal momento che PHP esiste da molto tempo e funziona bene su Linux e Windows, e molti server web ne hanno il supporto. Non c'è problema a trovare l'hosting con PHP preinstallato.


1
contrassegnare questa come risposta, non è necessario andare oltre: P. Bella risposta @Jonas
Pankaj Upadhyay,

La maggior parte dei punti qui vale anche per ASP classico. Oh, e anche semplice JSP.
Adriano Carneiro,

4
@Adrian: 1) PHP è stato rilasciato prima sia di JSP che di ASP. 2) È più facile usare MySQL con PHP poiché non è necessario gestire ODBC o JDBC e driver 3) ASP non era facile e diffuso su Linux (hosting economico) al momento. 4) Java con la sua tipizzazione statica è un po 'più difficile da iniziare per un principiante.
Jonas,

1
@Jonas, per lo più stai rafforzando il mio punto: 1) era l'unico linguaggio web decente, quindi il posto giusto, il momento giusto. 3) LAMPADA, ecco di cosa parla il mio post. Inoltre, stai calmo, non sto dicendo che PHP sia cattivo, sto solo dicendo perché è diventato popolare: ha riempito un vuoto, tutto qui.
Adriano Carneiro,

9
"Facile da iniziare" è, credo, ciò che l'ha lanciato. Perl esisteva e poteva fare tutto ciò che PHP poteva fare. Ma PHP è stato molto più semplice per un principiante completo con cui iniziare. E sospetto che anche la comunità fosse più amichevole con i novizi. PHP ha riempito il vuoto che VB ha fatto per la programmazione di Windows: abbastanza facile da consentire alle persone di iniziare da sole e creare effettivamente qualcosa.
GrandmasterB,

10

Per lo stesso motivo, MySQL è così popolare: era nel posto giusto al momento giusto.

Con il boom dei server Linux negli anni '90, la piattaforma LAMP (Linux-Apache-MySQL-PHP) è diventata un'opzione affidabile e, soprattutto, gratuita.

Come nota a margine, prendi MySQL al momento. Queste erano due funzionalità mancanti di MySQL (dalla parte superiore della mia mente, potrebbe essercene di più) non molto tempo fa :

  • Nessun grilletto
  • Non completamente conforme ACID

Come è diventato così popolare un DB che non era nemmeno compatibile con ACID (atomicità-coerenza-isolamento-durabilità)? Stessa risposta di PHP: era nel posto giusto al momento giusto.

Ulteriori letture sul "posto giusto al momento giusto" sui componenti LAMP:


3
Se "era nel posto giusto al momento giusto" è la risposta, allora Perl e CGI con C avrebbero dovuto vedere la stessa popolarità.
Jonas,

2
"In che modo un DB che non era nemmeno compatibile con ACID è diventato così popolare?" - È facile ... non è poi così importante per la maggior parte delle persone. MySQL era abbastanza affidabile per la maggior parte degli usi del web. Affidabile abbastanza presto per una banca? Probabilmente no. Per un forum web? Sì.
GrandmasterB,

Avevo un collega che urlava "ma MySQL non è certo un RDBMS!". Lo trovo divertente. La popolarità è una cosa divertente. Noi - sviluppatori di software - non dobbiamo essere schiavi della tendenza, dobbiamo continuare a imparare per continuare a lavorare. Chiunque difenda troppo una tecnologia ha meno probabilità di lasciarsi andare. E questo è sempre professionalmente pericoloso. Questo argomento è finito per me. :)
Adriano Carneiro,

8

Se ti guardi intorno, la maggior parte delle persone che gestiscono PHP in questi giorni eseguono Wordpress, Drupal, Joomla e simili. O una delle 10.000 app gratuite e popolari che funzionano praticamente fuori dalla scatola con un host PHP economico e una piccola configurazione. Molte volte viene installato non perché qualcuno stia realizzando qualcosa che gira su PHP tanto quanto l'opzione più semplice è quella di usare qualcosa costruito su PHP.


7

Sto insegnando a me stesso PHP in questo momento, quindi forse posso rispondere.

Un file di codice sorgente PHP può contenere un mix di HTML, JavaScript e PHP, quindi sembra davvero facile mettere in funzione semplici applicazioni Web. Interazioni più complesse, che richiederebbero molta Java in una situazione JSP, o alcune strane contorsioni in una situazione CGI-BIN, vengono soddisfatte dai builtin di PHP: non devi nemmeno sapere se un HTTP GET o POST chiamato tuo codice, tutto ciò che il tuo codice vuole sapere vive nelle variabili globali _REQUEST o _SERVER o _COOKIE.

PHP-the-langauage viene analizzato ed eseguito abbastanza rapidamente in modo da non notare un enorme calo delle prestazioni durante la generazione di HTML, piuttosto che avere solo un mucchio di file HTML statici.

PHP-the-interpreter ha chiamate in libreria per quasi tutti i DBMS open source, e anche per molti di quelli proprietari, quindi rendere semplice un'app Web a 3 livelli. PHP-the-interprete include chiamate in libreria per molte altre situazioni comuni (alias "casi d'uso"), quindi non devi scrivere molto codice tu stesso, chiama semplicemente la libreria. Quindi, proprio come le "app aziendali" J2EE, il problema si sposta dal saper codificare al sapere come cercare le cose della libreria. Questo è aiutato dal decente manuale PHP.net di PHP.

Come linguaggio di programmazione, PHP non ha molti costrutti esotici, o differisce troppo da, diciamo C, FORTRAN 4 o Pascal, quindi i programmatori che già conoscono una lingua possono facilmente acquisire PHP-the-language.


3

Ci sono due punti chiave per il successo di PHP: i tempi e l'attenzione per l'hosting condiviso.

All'inizio il Web era statico. I Web-Server potevano distribuire HTML pre-generato solo che ovviamente non era abbastanza dopo qualche tempo, quindi nel 1993 il team NCSA ha esteso il proprio server Web (il predecessore di Apache httpd) con una tecnologia chiamata CGI che ha permesso di chiamare programmi specifici dal server web che potrebbe generare HTML (o altri contenuti) al volo. Questo è stato fantastico in quanto le persone potevano fare tutte le cose. A quel tempo una lingua comunemente usata a quel fine era Perl. Perl è un linguaggio forte nell'elaborazione del testo che è una proprietà chiave per la gestione dei dati delle richieste HTTP e la produzione di HTML. Quindi la gente l'ha usato.

Ma c'era un problema: per ogni richiesta il web server doveva eseguire un programma esterno, Perl doveva inizializzare ed eseguire lo script. Ciò ha causato un po 'di mal di testa. Una soluzione era mod_perl in arrivo ca. 1997. mod_perl è un modulo per il server web Apache che incorpora l'interprete Perl direttamente nel processo del server Web, quindi non è necessario un avvio aggiuntivo.

Ma ancora una volta questo approccio ha avuto un problema: mod_perl era estremamente potente e aveva accesso alla configurazione completa del server. Non è possibile utilizzare un server per ospitare più client indipendenti in quanto potrebbero facilmente danneggiare le altre persone, sia di proposito che per caso. Ed è qui che è arrivato PHP.

PHP è stato creato in modo tale da poter funzionare come modulo Apache (quindi non avendo il colpo di avvio per ogni richiesta) ma fornisce un ambiente condiviso tra le richieste. Una volta effettuata una richiesta, tutte le informazioni andavano perse e una successiva richiesta a un altro host virtuale veniva servita in modo indipendente. PHP ha anche offerto funzionalità per limitare l'accesso (safe_mode, open_base_dir). Con questa scelta architettonica, le aziende potrebbero installare PHP sul proprio server e fornire ai clienti l'accesso FTP (o simile) per caricare i propri file e, da quel momento, ospitare molti clienti su un singolo computer senza molto lavoro. Ciò ha causato una competizione che ha portato a prezzi bassi per l'hosting basato su PHP, trasformando PHP in una piattaforma onnipresente.

Inoltre PHP ha avuto alcuni vantaggi rispetto a Perl, come consentire di mescolare codice HTML e PHP o accedere direttamente alle variabili di richiesta (vedi anche register_globals) che in Perl era più difficile (analisi personalizzata o dipendenza da CGI.pm) che gli sviluppatori piacevano.

Un altro aspetto che ha reso PHP di successo in quei giorni è stato un buon supporto su Windows. Far lavorare Perl o altre lingue su Windows è stato difficile, ma a quel tempo molti sviluppatori in cui l'utilizzo di Windows a casa e la virtualizzazione o i contenitori non erano ancora una cosa. PHP funzionava facilmente su Windows in modo che le persone potessero usarlo per lo sviluppo e quindi impacchettare i file e distribuirli su Linux. Con Perl, ad esempio, dovresti ottenere la corretta distribuzione perl e quindi controllare quali moduli sono disponibili, ecc.

E le altre lingue? I linguaggi compilati come C o C ++ non hanno mai avuto successo poiché gli script servono meglio il mercato in rapido sviluppo. Esisteva Java, ma le macchine virtuali Java richiedevano molte più risorse e l'hosting condiviso nel modo in cui PHP lo supporta non era fattibile. L'investimento nell'hard disk è stato molto più elevato. ASP (come predecessore di ASP.Net) era legato alla piattaforma Windows, limitandolo alle organizzazioni che già eseguono Windows e che non temono i costi di licenza e, di nuovo, nessun supporto di hosting condiviso.

Sono state prodotte diverse altre tecnologie, ma erano commerciali (Cold Fusion o Netscape Server con JavaScript lato server) che ne limitavano la portata o non erano fuori portata fino all'arrivo di Ruby-on-rails, che probabilmente è stato il primo ambiente a ricevere molte attenzione, ma a quel tempo PHP era già molto popolare con una grande comunità e un software ben consolidato (come Wordpress o Drupal) che rendeva difficile competere, specialmente perché lo sviluppo di PHP non si è mai fermato e continua.


1

Ammettiamolo, PHP è economico, facile da imparare, ha una grande comunità, puoi ospitarla ovunque ed è stata in giro molto. Quindi, se pensi che qualcuno utilizzi Internet come un modo per guadagnare velocemente in un settore di piccole / medie dimensioni e debba creare un'area di sviluppo per farlo con un'infrastruttura praticamente inesistente, PHP suona piuttosto bene (per cominciare).

Quindi penso che PHP sia un ottimo modo per guadagnare velocemente con un sacco di programmatori e un piccolo computer come server.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.