Em uma palavra, história. Este é um resumo muito abreviado de mais de 15 anos de história (você pode encontrar mais informações na Internet, se estiver realmente interessado):
Primeiro, enquanto o PHP tem todos os recursos de uma linguagem de programação, isso nem sempre foi assim. Começou como um "pré-processador de hipertexto" cujo propósito era ser incorporado em páginas HTML e analisado por um programa CGI ou pelo servidor web em si. Era para ser executado por um servidor web existente, não para ser um servidor web. Em suas primeiras iterações, era uma linguagem muito simples (e alguns diriam que ainda é).
O PHP data do final dos anos 90, e a única maneira de um servidor web rodar conteúdo dinâmico era através do CGI . O grande problema do CGI, porém, era que ele era bastante lento, porque ele criava um novo processo para cada solicitação. Não é um grande negócio nos primeiros dias, mas quando o boom das pontocom atingiu, tornou-se algo de um problema. O PHP tornou-se popular o suficiente para ser incorporado ao Apache como um módulo carregável, que dava melhor desempenho que o CGI e oferecia outros benefícios .
Durante muito tempo, o PHP só era executável em uma dessas duas formas, mas desde que se tornou a linguagem com a maior parte do mercado, ninguém se importava muito. Embora, eventualmente, algumas pessoas quisessem usar servidores diferentes do Apache, e por algum tempo a CGI era a única maneira de fazer isso, até um FastCGI php-fpm (FastCGI Process Manager) foi eventualmente contribuída para o PHP. Ao contrário do CGI, o FastCGI mantém um conjunto de processos sempre em execução e pronto para atender a solicitações de entrada.
Nos anos 2000 surgiram outras linguagens, que fazem as coisas de maneira diferente. Por exemplo, em Ruby, as bibliotecas de aplicativos são enviadas em gems, e um programa pode ser facilmente criado simplesmente colando algumas gems existentes com a lógica de negócios. Rack é uma jóia Ruby que fornece uma API Ruby para construir servidores web, e servidores como mestiço, unicórnio, thin, etc., e frameworks como Rails e Sinatra, são construídos sobre ele.
Outros idiomas, como Python e Java, têm servidores da Web e estruturas de servidor da Web semelhantes. Como você pode ver, esta é uma abordagem completamente diferente da usada pelo PHP, que geralmente não usa HTTP para atender requisições.
No entanto, versões recentes do PHP agora têm um " construído em um servidor web ", mas é relativamente novo e só pode manipular uma conexão por vez, tornando-a inadequada para uso em produção. É explicitamente projetado para uso do desenvolvedor.
Em última análise, tudo se resume a isto: o PHP foi projetado para funcionar no contexto de um documento HTML existente, enquanto outras linguagens como Python, Ruby, Java, etc., são de propósito geral. A única outra linguagem da web que eu conheço que funciona como PHP a esse respeito é o ASP "clássico" da Microsoft , que tem um similar design.