Pergunta

Estou planejando usar o PHP em um ambiente incorporado. Nosso servidor web atual é thttpd. Estou considerando duas opções agora: se deve executá -lo como um módulo CGI ou como SAPI. Eu sei que o CGI tem vantagem em termos de segurança. Mas se quisermos usar o PHP como CGI, uma instância do PHP deve ser carregada na memória para cada solicitação.

Eu tentei compilá -lo como um módulo SAPI do THTTPD e observei que o uso da memória do Thttpd, especificamente RSS, não aumenta à medida que o número de solicitação aumenta.

Alguém pode explicar como o thttpd carrega PHP? É carregado apenas uma vez e permanece residente na memória enquanto este estiver em execução? Nesse caso, podemos considerar isso como uma alternativa ao CGI.

Ele executa multi-threading, ou seja, se houver várias solicitações HTTP ao mesmo tempo? Ou o processo solicita um de cada vez?

Existe uma boa documentação discutindo o comportamento do PHP como um módulo de THTTPD?

Foi útil?

Solução

Não tenho experiência com o THTTPD, mas aqui estão algumas dicas:

  • O mecanismo PHP é seguro, mas algumas extensões não são, então geralmente as pessoas evitam-se de usá-lo em um ambiente multithread e, em vez disso
  • Sim, geralmente os módulos do servidor da web (como o Apache Mod_* Stuff) funcionam mantendo -se residentes, mas o Big Speedbump para PHP é que ele precisa analisar o arquivo de origem (ou mesmo vários arquivos de origem se você usar incluir / exigir) para cada solicitação. Você pode reduzir isso usando algo como APC que armazenam em cache a versão analisada dos arquivos
  • Há também um protocolo chamado fastcgi que você pode querer ver - basicamente é um cruzamento entre o módulo e a solução CGI - ele gira alguns processos, cada processo hospeda uma única instância do problema da CGI (PHP neste caso ) e usa -os para processar solicitações. As instâncias são recicladas (ou seja, elas podem processar várias solicitações, uma após a outra).
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top