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.