Existem dois pontos-chave para o sucesso do PHP: o tempo e o foco na hospedagem compartilhada.
No começo, a Web era estática. Os servidores da Web só podiam distribuir HTML pré-gerado, o que obviamente não era suficiente depois de algum tempo; em 1993, a equipe da NCSA estendeu seu servidor da Web (o antecessor do Apache httpd) com uma tecnologia chamada CGI que permitia chamar programas específicos do servidor da Web que pode gerar HTML (ou outro conteúdo) em tempo real. Isso foi ótimo, pois as pessoas podiam fazer todas as coisas. Uma linguagem comumente usada na época para esse fim era Perl. Perl é uma linguagem forte no processamento de texto, que é uma propriedade essencial para manipular dados de solicitação HTTP e produzir HTML. Então as pessoas usaram.
Mas havia um problema: para cada requisição que o servidor da Web precisava executar um programa externo, o Perl precisava inicializar e executar o script. Isso causou bastante dor de cabeça. Uma solução foi mod_perl chegando ca. 1997. mod_perl é um módulo para o servidor da web Apache que incorpora o interpretador Perl diretamente no processo do servidor da web, portanto, nenhuma inicialização extra era necessária.
Mas, novamente, essa abordagem teve um problema: mod_perl era extremamente poderoso e tinha acesso à configuração completa do servidor. Você não pode usar um servidor para hospedar vários clientes independentes, pois eles podem facilmente prejudicar as outras pessoas - seja de propósito ou por acidente. E foi aí que o PHP veio.
O PHP foi construído de uma maneira que pudesse ser executado como módulo Apache (portanto, não tendo a inicialização atingida para cada solicitação), mas fornecendo um ambiente de compartilhamento de nada entre solicitações. Depois que uma solicitação foi concluída, todas as informações foram perdidas e uma solicitação subsequente para outro host virtual seria atendida independentemente. O PHP também ofereceu recursos para restringir o acesso (safe_mode, open_base_dir). Com essa escolha arquitetônica, as empresas poderiam instalar o PHP em seu servidor e fornecer aos clientes acesso FTP (ou similar) para carregar seus arquivos e hospedar muitos clientes em uma única máquina sem muito trabalho. Isso causou uma concorrência que levou a preços baratos para hospedagem baseada em PHP, tornando o PHP uma plataforma onipresente.
Além disso, o PHP teve alguns benefícios sobre o Perl, como permitir a combinação de códigos HTML e PHP ou acesso direto a variáveis de solicitação (consulte também register_globals) que no Perl eram mais difíceis (análise personalizada ou dependência no CGI.pm) que os desenvolvedores gostaram.
Outro aspecto que tornou o PHP bem-sucedido naqueles dias era o bom suporte no Windows. Conseguir que o Perl ou outros idiomas funcionassem no Windows era difícil, mas naquela época muitos desenvolvedores que usavam o Windows em casa e virtualização ou contêineres ainda não eram suficientes. O PHP rodou facilmente no Windows, para que as pessoas pudessem usá-lo para desenvolvimento e depois empacotar os arquivos e implantar no Linux. Com o Perl, por exemplo, você teria que obter a distribuição correta do perl e depois verificar quais módulos estão disponíveis, etc.
E outras línguas? Linguagens compiladas como C ou C ++ nunca tiveram tração, já que o script atende melhor ao mercado em rápido desenvolvimento. O Java existia, mas as máquinas virtuais Java exigiam muito mais recursos e hospedagem compartilhada da maneira que o PHP suporta, dificilmente era possível. O investimento em hardware foi muito maior. O ASP (como antecessor do ASP.Net) estava vinculado à plataforma Windows, limitando-o a organizações que já executam o Windows e que não temem os custos de licenciamento e, novamente, nenhum suporte de hospedagem compartilhada.
Diferentes outras tecnologias foram produzidas, mas eram comerciais (Cold Fusion ou Netscape Server com JavaScript no servidor) limitando o alcance ou não estavam até o Ruby-on-rails, o que provavelmente foi o primeiro ambiente a receber muitos atenção, mas naquela época o PHP já era muito popular entre uma grande comunidade e um software bem estabelecido (como Wordpress ou Drupal) dificultando a concorrência - especialmente porque o desenvolvimento do PHP nunca parava e ainda continua.