Hay dos puntos clave para el éxito de PHP: el momento y el enfoque en el alojamiento compartido.
Al principio la web era estática. Los servidores web solo podían distribuir HTML pregenerado, esto obviamente no fue suficiente después de algún tiempo, por lo que en 1993 el equipo de NCSA amplió su servidor web (el predecesor de Apache httpd) con una tecnología llamada CGI que permitía llamar a programas específicos desde el servidor web que podría generar HTML (u otro contenido) sobre la marcha. Esto fue genial ya que la gente podía hacer todas las cosas. Un lenguaje comúnmente utilizado en ese momento para ese propósito era Perl. Perl es un lenguaje fuerte en el procesamiento de texto que es una propiedad clave para manejar datos de solicitud HTTP y producir HTML. Entonces la gente lo usó.
Pero había un problema: para cada solicitud que el servidor web tenía que ejecutar un programa externo, Perl tenía que inicializar y ejecutar el script. Esto causó bastante dolor de cabeza. Una solución fue mod_perl llegando ca. 1997. mod_perl es un módulo para el servidor web Apache que integra el intérprete de Perl directamente en el proceso del servidor web, por lo que no se necesita un inicio adicional.
Pero nuevamente, este enfoque tenía un problema: mod_perl era extremadamente poderoso y tenía acceso a la configuración completa del servidor. No podría usar un servidor para alojar múltiples clientes independientes, ya que podrían dañar fácilmente a otras personas, ya sea a propósito o por accidente. Y ahí es donde llegó PHP.
PHP fue construido de una manera que podría ejecutarse como módulo Apache (por lo tanto, no tener el hit de inicio para cada solicitud) pero proporciona un entorno de nada compartido entre las solicitudes. Una vez que se realizó una solicitud, se perdió toda la información y una solicitud posterior a otro host virtual se atendería de forma independiente. PHP también ofreció funciones para restringir el acceso (safe_mode, open_base_dir). Con esa opción arquitectónica, las empresas podrían instalar PHP en su servidor y proporcionar a los clientes acceso FTP (o similar) para cargar sus archivos y, de ese modo, alojar a muchos clientes en una sola máquina sin mucho trabajo. Esto provocó una competencia que condujo a precios baratos para el alojamiento basado en PHP, lo que hizo de PHP una plataforma ubicua.
Además, PHP tuvo algunos beneficios sobre Perl, como permitir mezclar código HTML y PHP o acceso directo a variables de solicitud (ver también register_globals) que en Perl fue más difícil (análisis personalizado o dependencia de CGI.pm) que les gustó a los desarrolladores.
Otro aspecto que hizo que PHP tuviera éxito en esos días fue un buen soporte en Windows. Conseguir que Perl u otros idiomas funcionaran en Windows fue difícil, pero en ese momento muchos desarrolladores aún no usaban Windows en casa y la virtualización o los contenedores. PHP se ejecutó fácilmente en Windows para que las personas pudieran usarlo para el desarrollo y luego empacar los archivos e implementarlos en Linux. Con Perl, por ejemplo, tendría que obtener la distribución perl correcta y luego verificar qué módulos están disponibles, etc.
¿Qué hay de otros idiomas? Los lenguajes compilados como C o C ++ nunca tuvieron tracción ya que las secuencias de comandos sirven mejor al mercado en rápido desarrollo. Java existía, pero las máquinas virtuales Java requerían muchos más recursos y alojamiento compartido en la forma en que PHP lo soportaba era apenas factible. La inversión en hardware fue mucho mayor. ASP (como predecesor de ASP.Net) estaba vinculado a la plataforma Windows, limitándolo a las organizaciones que ya ejecutan Windows y que no temen los costos de licencia, y nuevamente no cuentan con soporte de alojamiento compartido.
Se produjeron otras tecnologías diferentes, pero fueron comerciales (Cold Fusion o Netscape Server con JavaScript del lado del servidor) limitando su alcance o no desaparecieron hasta que llegó Ruby-on-rails, que probablemente fue el primer entorno que recibió muchos atención, pero en ese momento PHP ya era muy popular entre una gran comunidad y un software bien establecido (como Wordpress o Drupal), lo que dificultaba la competencia, especialmente porque el desarrollo de PHP nunca se detuvo y aún continúa.