Domanda

Sto pensando di usare php in un ambiente incorporato. Il nostro attuale server web è httpd. Sto considerando due opzioni ora: se eseguirlo come cgi o come modulo SAPI. So che cgi ha un vantaggio in termini di sicurezza. Ma se vogliamo usare php come cgi, un'istanza di php dovrebbe essere caricata in memoria per ogni richiesta.

Ho provato a compilarlo come modulo SAPI di thttpd e ho osservato che l'utilizzo della memoria di thttpd, in particolare rss, non aumenta con l'aumentare del numero di richieste.

Qualcuno può spiegare come thttpd carica php? Viene caricato solo una volta e rimane residente nella memoria fintanto che httpd è in esecuzione? In tal caso, possiamo considerarlo un'alternativa a cgi.

Esegue il multi-threading, ovvero se sono presenti più richieste http contemporaneamente? o elabora una richiesta alla volta?

Esiste una buona documentazione che discute del comportamento di php come modulo di httpd?

È stato utile?

Soluzione

Non ho esperienza con thttpd, ma ecco alcuni suggerimenti:

  • il motore PHP è thread-safe, ma alcune estensioni non lo sono, quindi di solito le persone evitano di usarlo in un ambiente multi-thread e preferiscono utilizzare il processo a un processo - metodo a una richiesta
  • sì, di solito i moduli server web (come il roba mod_ * di Apache) funzionano rimanendo residenti, ma il grande speedbump per PHP è che deve analizzare il file sorgente (o anche più file sorgente se usi include / request) per ogni richiesta. Puoi ridurlo utilizzando qualcosa come APC che memorizza nella cache la versione analizzata dei file
  • c'è anche un protocollo chiamato FastCGI che potresti voler guardare - fondamentalmente è un crossover tra il modulo e la soluzione CGI - ruota su un paio di processi, ogni processo ospita una singola istanza del problema CGI (PHP in questo caso) e li utilizza per elaborare le richieste. Le istanze vengono riciclate (ovvero possono elaborare più richieste, una dopo l'altra).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top