Heim >Schlagzeilen >Konfiguration und Prinzip von Nginx+php
Die Verwendung von nginx+php als Webserver-Architekturmodell ist heutzutage weit verbreitet. Der erste Schritt, der jedoch realisiert werden muss, besteht darin, Nginx dazu zu bringen, PHP korrekt aufzurufen. Da der Aufruf von PHP durch Nginx nicht so einfach ist wie der Aufruf einer statischen Datei, erfordert er eine dynamische Ausführung des PHP-Skripts. Es geht also um die Konfiguration der Datei nginx.conf. Für Anfänger erfordert dieser Schritt im Allgemeinen eine Online-Informationssuche. Für normale Veteranen verstehen viele Studenten nicht, warum eine solche Konfiguration erforderlich ist. Der Hauptinhalt dieses Artikels ist die korrekte Konfiguration der PHP-Aufrufmethode im Nginx-Server und die Grundprinzipien der Konfiguration.
1. Das Funktionsprinzip von Nginx+PHP:
Lassen Sie uns zunächst kurz über das Funktionsprinzip von Nginx+PHP sprechen :
1. Der Nginx-Workerprozess verwaltet jede Netzwerkanfrage an Nginx direkt.
2. Da PHP im gesamten Netzwerkanforderungsprozess die Rolle eines CGI-Programms spielt, wird ein Prozessverwaltungsprogramm namens php-fpm zur Verwaltung dieser angeforderten PHP-Programme verwendet. Das PHP-FPM-Programm muss wie Nginx den Port abhören und über Master- und Worker-Prozesse verfügen. Der Worker-Prozess verwaltet jeden PHP-Prozess direkt.
3. Über fastcgi: fastcgi ist ein Prozessmanager, der CGI-Prozesse verwaltet. Es gibt viele Prozessmanager auf dem Markt, die Fastcgi-Funktionen implementieren, und PHP-FPM ist einer davon. Eine weitere Sache: PHP-FPM überwacht als Fast-CGI-Prozessverwaltungsdienst den Port. Im Allgemeinen überwacht es standardmäßig Port 9000 und überwacht den lokalen Computer, dh es empfängt nur Portanforderungen von lokale Maschine, daher geben wir normalerweise den Befehl netstat -nlpt|grep ein. php-fpm erhält:
tcp 0 0 127.0.0.1:9000 0.0.0.0:* 🎜>
The 127.0.0.1:9000 Hier wird die Bedeutung von Port 9000 dieser Maschine überwacht. 4. Was Fastcgi-Konfigurationsdateien betrifft, werden sie derzeit im Allgemeinen im selben Verzeichnis wie nginx.conf abgelegt. Es gibt im Allgemeinen zwei Arten von Konfigurationsdateien: fastcgi.conf und fastcgi_params. Verschiedene Nginx-Versionen haben unterschiedliche Konfigurationsdateien. Es gibt einen sehr wichtigen Unterschied zwischen diesen beiden Konfigurationsdateien: Die folgende Konfiguration fehlt in der Datei fastcgi_parames: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; us Sie können die Datei fastcgi_parames öffnen und die obige Zeile hinzufügen oder sie dynamisch an der Stelle hinzufügen, an der Sie die Konfiguration verwenden möchten. Sorgen Sie dafür, dass diese Konfiguration wirksam wird. 5. Wenn eine PHP-Anfrage verarbeitet werden muss, übergibt der Worker-Prozess von Nginx die Anfrage zur Verarbeitung an den Worker-Prozess von PHP-FPM. Das heißt, Nginx ruft PHP zu Beginn auf. Genau genommen ist es tatsächlich so, dass Nginx PHP indirekt aufruft. Nachdem Sie die oben genannten fünf einfachen Prinzipien verstanden haben, wird die Konfiguration der PHP-Aufrufmethode in Nginx einfach.2. Konfigurationsdatei:
Fügen Sie den Code direkt Zeile für Zeile ein. Hier ist die einfachste Nginx-Vhost-Konfiguration, mit der das PHP-Skript normal gestartet werden kann:server { listen 8011; server_name test.cn; location ~ \.php?.*$ { root /share/test; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }1. Der erste geschweifte Klammerserver{ }: Stellt selbstverständlich einen unabhängigen Server dar, 2: Stellt den Server dar, der Port 8011 überwacht . Standort ~ .php?.*${ }: Stellt einen Standort dar, der mit der entsprechenden URI übereinstimmen kann. Er wird verwendet, um einen URI-Typ abzugleichen und eine angepasste Logik und Konfiguration für die übereinstimmende URI-Anfrage zu erstellen. Der Standort hier entspricht allen URI-Anfragen mit .php, zum Beispiel: http://192.168.244.128:8011/test.php/asdasd http://192.168.244.128:8011/index.php usw. 4. root /share/test: Fordern Sie das Ressourcen-Stammverzeichnis an und teilen Sie der URI mit, die zum Speicherort passt, zum Ordner /share/teset zu gehen, um die Ressource mit demselben Namen zu finden. 5. fastcgi_pass 127.0.0.1:9000: Der Anfang dieser Zeile steht im Mittelpunkt dieses Artikels: Diese Codezeile bedeutet, dass die am Standort eingegebene URI-Anfrage als CGI-Programm betrachtet und die Anfrage gesendet wird zu Port 9000 wird von php-fpm verwaltet. 6. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name: Diese Konfigurationszeile wird dynamisch hinzugefügt, und der Konfigurationsinhalt ist SCRIPT_FILENAME, der den Verwaltungsprozess über den Namen des CGI-Skripts informiert . Da es in meinem Nginx nur die Datei fastcgi_params und keine Datei fastcgi.conf gibt, muss diese Konfigurationszeile dynamisch hinzugefügt werden, damit php-fpm den spezifischen Wert von SCRIPT_FILENAME kennt. 7. fastcgi_params einführen; fastcgi-Konfigurationsdatei einführen Das obige ist die einfachste Version des Nginx-Startup-PHP-Skripts. Erstellen Sie nach dem Neustart eine Datei in /share/test Verzeichnis xx.php, geben Sie b931974eff9866af0d6a116268bb1793 ein, um es zu speichern, und besuchen Sie dann localhost:8011/xx.php im Browser, um hello world auf der Webseite anzuzeigen.
3. Zusammenfassung:
Tatsächlich für den Aufruf von CGI-Skripten wie PHP, solange Sie die 5 Prinzipien verstehen, die ich am Anfang erwähnt habe, und sie dann kombinieren Zeilen 5-7 Anhand der Konfigurationserklärung können Sie klar verstehen, warum Sie es auf diese Weise konfigurieren müssen. Für Anfänger sind sie oft verwirrt von den CGI-Programmen fastcgi und php-fpm. Sie konfigurieren sie nach dem Zufallsprinzip und führen sie online aus, ohne sich mit ihren Prinzipien zu befassen. Daher hoffe ich, dass das, was ich hier schreibe, den Lesern etwas helfen kann.