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 server Web potevano solo distribuire l'HTML pre-generato, ovviamente non era abbastanza dopo un po 'di tempo, quindi nel 1993 il team NCSA ha esteso il proprio server web (il predecessore di Apache httpd) con una tecnologia chiamata CGI che permetteva di chiamare programmi specifici dal server web che potevano generare al volo HTML (o altro contenuto). Questo è stato fantastico come le persone potevano fare tutte le cose. Perl era un linguaggio comunemente usato in quel momento per il Perl. Perl è un linguaggio strong nell'elaborazione del testo che è una proprietà chiave per gestire i dati delle richieste HTTP e produrre HTML. Quindi la gente lo usava.
Ma c'era un problema: per ogni richiesta il server web doveva eseguire un programma esterno, Perl doveva inizializzare ed eseguire lo script. Questo ha causato un po 'di mal di testa. Una soluzione era mod_perl arrivando 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 alcun 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, che si tratti di un tentativo o di un incidente. Ed è qui che è arrivato PHP.
PHP è stato costruito in modo da poter essere eseguito come modulo Apache (non avendo quindi il risultato di avvio per ogni richiesta), ma fornisce un ambiente a zero condiviso tra le richieste. Una volta che una richiesta è stata eseguita, tutte le informazioni sono andate perse e una successiva richiesta a un altro host virtuale sarebbe stata pubblicata in modo indipendente. PHP ha anche offerto funzionalità per limitare l'accesso (safe_mode, open_base_dir). Con questa scelta architettonica le aziende possono installare PHP sul proprio server e fornire ai clienti l'accesso FTP (o simile) per caricare i propri file e con l'hosting di molti clienti su una singola macchina senza molto lavoro. Ciò ha causato una concorrenza che ha portato a prezzi bassi per l'hosting basato su PHP, rendendo PHP una piattaforma onnipresente.
Inoltre PHP ha avuto alcuni vantaggi rispetto a Perl, come il permettere di combinare codice HTML e PHP o l'accesso diretto alle variabili di richiesta (vedi anche register_globals) che in Perl era più difficile (analisi personalizzata o dipendenza da CGI.pm) a cui piacevano gli sviluppatori.
Un altro aspetto che ha reso il successo di PHP in quei giorni era un buon supporto su Windows. L'utilizzo di Perl o di altri linguaggi su Windows è stato difficile, ma a quei tempi molti sviluppatori in cui l'utilizzo di Windows a casa e la virtualizzazione o i contenitori non erano ancora una cosa. PHP è stato eseguito facilmente su Windows, quindi le persone potrebbero utilizzarlo per lo sviluppo e quindi mettere in valigia i file e distribuirli su Linux. Con Perl, per 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 ottenuto la trazione dal momento che lo scripting serve meglio il mercato in rapido sviluppo. Java esisteva, ma le macchine virtuali Java richiedevano più risorse e hosting condiviso nel modo in cui PHP lo supportava difficilmente. Gli investimenti in harddware erano molto più alti. 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 ancora nessun supporto di hosting condiviso.
Diverse altre tecnologie in cui sono state prodotte, ma erano commerciali (Cold Fusion o Netscape Server con JavaScript lato server) che limitavano la loro copertura o non erano fuori dalla loro portata fino a quando non è arrivato Ruby-on-rails, che probabilmente era il primo ambiente ricevendo molta 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 fermava mai e continua ancora.