O modelo prefork impõe algumas restrições sobre o HTTP, mesmo sem HTTP / 2, mas com o HTTP / 2, ele impede que muitos recursos do HTTP / 2 sejam usados. Como cada solicitação ocorre em um processo separado e não há multitarefas, o Apache não é capaz de multiplexá-las (atender a várias solicitações na mesma conexão TCP), a menos que altere a maneira como o prefork funciona de maneira bastante substancial, . Portanto, o suporte a HTTP / 2 é limitado a uma única solicitação por vez por conexão ao usar o prefork.
( Isto está documentado aqui )
Uma boa maneira moderna de integrar o PHP com um servidor web é usar o PHP-FPM (gerenciador de processos FastCGI embutido no PHP) e ter o servidor web retransmitindo as solicitações do PHP para isso, e receber suas respostas. Então você pode usar um servidor web multithreaded como o Apache com o MPM worker, ou um servidor web baseado em eventos como o Apache com o evento MPM, ou nginx (que é particularmente bom em HTTP / 2, devido à sua capacidade de manter milhares de conexões com muito pouca memória). Na verdade, esta é provavelmente a maneira mais comum de usar o PHP com o nginx, e eu também o vi usado no Apache2 antes por razões de segurança (por exemplo, ter diferentes aplicativos PHP sendo executados como usuários separados). O suporte ao HTTP / 2 também parece ser um motivo decente.
Existem muitos guias para configurar servidores web e PHP para usar o PHP-FPM.