Heim > Backend-Entwicklung > PHP-Tutorial > PHP-SAPI-Schnittstelle

PHP-SAPI-Schnittstelle

WBOY
Freigeben: 2016-08-08 09:32:32
Original
1161 Leute haben es durchsucht
Im Allgemeinen ist der gesamte Workflow von FastCGI wie folgt:
  • Laden Sie den FastCGI-Prozessmanager (IIS ISAPI oder Apache-Modul), wenn der Webserver startet.
  • FastCGI-Prozess Der Manager initialisiert sich selbst, startet mehrere CGI-Interpreterprozesse (sichtbar mehrere PHP-CGI) und wartet auf Verbindungen vom Webserver.
  • Wenn eine Client-Anfrage den Webserver erreicht, wählt der FastCGI-Prozessmanager einen CGI-Interpreter aus und stellt eine Verbindung zu ihm her. Der Webserver sendet CGI-Umgebungsvariablen und Standardeingaben an den FastCGI-Unterprozess php-cgi.
  • Nachdem der FastCGI-Unterprozess die Verarbeitung abgeschlossen hat, gibt er über dieselbe Verbindung Standardausgabe- und Fehlerinformationen an den Webserver zurück. Wenn der untergeordnete FastCGI-Prozess die Verbindung schließt, wird die Anfrage verarbeitet. Der untergeordnete FastCGI-Prozess wartet dann auf die nächste Verbindung vom FastCGI-Prozessmanager (der auf dem Webserver ausgeführt wird) und verarbeitet diese. Im CGI-Modus wird php-cgi an dieser Stelle beendet.
  • PHPs CGI implementiert das Fastcgi-Protokoll. Es handelt sich um einen TCP- oder UDP-Protokollserver, der beim Start einen Socket-Listener für den TCP/UDP-Protokollserver erstellt erhält entsprechende Anfragen zur Bearbeitung. Anschließend wird der Lebenszyklus von PHP eingegeben: Modulinitialisierung, Sapi-Initialisierung, Verarbeitung von PHP-Anforderungen, Schließen von Modulen, Sapi-Schließen usw. bilden den gesamten CGI-Lebenszyklus.
    Nach dem Login kopieren
    static sapi_module_struct cgi_sapi_module = {
    	"cgi-fcgi",						/* name */
    	"CGI/FastCGI",					/* pretty name */
    
    	php_cgi_startup,				/* startup */
    	php_module_shutdown_wrapper,	/* shutdown */
    
    	sapi_cgi_activate,				/* activate */
    	sapi_cgi_deactivate,			/* deactivate */
    
    	sapi_cgi_ub_write,				/* unbuffered write */
    	sapi_cgi_flush,					/* flush */
    	NULL,							/* get uid */
    	sapi_cgi_getenv,				/* getenv */
    
    	php_error,						/* error handler */
    
    	NULL,							/* header handler */
    	sapi_cgi_send_headers,			/* send headers handler */
    	NULL,							/* send header handler */
    
    	sapi_cgi_read_post,				/* read POST data */
    	sapi_cgi_read_cookies,			/* read Cookies */
    
    	sapi_cgi_register_variables,	/* register server variables */
    	sapi_cgi_log_message,			/* Log message */
    	NULL,							/* Get request time */
    	NULL,							/* Child terminate */
    
    	STANDARD_SAPI_MODULE_PROPERTIES
    };
    Nach dem Login kopieren

    Nach dem Login kopieren

    Das Obige hat die PHP-SAPI-Schnittstelle und einige Aspekte davon vorgestellt. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

    Verwandte Etiketten:
    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage