Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn Mac Nginx PHP nicht analysiert?
Die Lösung für Mac Nginx, der PHP nicht analysiert: 1. Erstellen Sie eine neue Datei mit dem richtigen Namen. 2. Führen Sie den Befehl „php-fpm --fpm-config...“ aus ;4. Beenden Sie den Lösungsprozess.
Die Betriebsumgebung dieses Artikels: macOS10.15-System, PHP7.1-Version, MacBook Air 2019-Computer
Was soll ich tun, wenn Mac Nginx PHP nicht analysiert?
Die Fallstricke, auf die der Mac bei der Bereitstellung von PHP unter Nginx stößt
Ich wurde von jemandem gebeten, ihm bei der Bereitstellung einer Website zu helfen, und dann wollte ich sie zuerst in lokalem Nginx debuggen. Als ich die Seite öffnete, wurde zunächst 403 angezeigt. Ich hatte das schon einmal gesehen und es handelte sich um ein Berechtigungsproblem mit Nginx. Nachdem ich die Berechtigungen geändert hatte, stellte ich fest, dass ich sie beim Zugriff auf die PHP-Seite direkt heruntergeladen habe, ohne sie zu analysieren. Mir ist eingefallen, dass mein Computer möglicherweise keine PHP-Umgebung hat, also habe ich PHP heruntergeladen. Dann besteht immer noch das gleiche Problem. Kurz gesagt, da ich mit PHP nicht sehr vertraut bin (ich habe zuvor Software wie xampp verwendet), hat es eine Weile gedauert, bis ich es geschafft habe.
Das erste, was Sie verstehen müssen, ist, dass Nginx selbst nicht mit PHP umgehen kann, sondern nur ein Webserver ist. Wenn das Front-End PHP anfordert, muss Nginx die Schnittstelle zur Verarbeitung an den PHP-Interpreter senden und dann das Ergebnis an den PHP-Interpreter senden Frontend. Im Allgemeinen sendet Nginx die Anfrage zur Verarbeitung an den Fastcgi-Verwaltungsprozess. Wie in Nginx konfiguriert:
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#这里原来不是$document_root,搞得我很蒙,还好网上查到改好了,不然会报file not found include fastcgi_params; }
Um ein FastCGI zu starten, wird hier PHP-FPM verwendet. Es handelt sich um einen PHP-FastCGI-Manager, der nur für die PHP-Sprache verwendet wird (die alte Version von PHP muss PHP-FPM separat herunterladen, ich verwende PHP -fpm integriert dies bereits).
Hier gibt es viele seltsame Fragen.
Erstes Ausführen von php-fpm
fehlgeschlagen: Datei /private/etc/php-fpm.conf kann nicht gefunden werden,
Lösung: In dieser Verzeichnisdatei befindet sich jedoch php-fpm.conf.default. Erstellen Sie also eine neue Datei mit dem richtigen Namen
Führen Sie php-fpm zum zweiten Mal aus
Fehler: /usr/var/log/php-fpm.log nicht gefunden
Lösung: Es gibt kein solches Verzeichnis Ich habe es überhaupt in der conf-Datei geändert, aber es hatte keine Auswirkung, als php-fpm über den folgenden Befehl auszuführen (ich werde diesen Befehl später verwenden), um es auszuführen:
php-fpm --fpm-config /private/etc/php-fpm.conf --prefix /usr/local/var
Führen Sie php-fpm aus zum dritten Mal
Failed: No pool defined. at least one pool section must be specified in config file
Lösung: Gehen Sie in das Verzeichnis /etc/php-fpm.d/ und suchen Sie die Datei www.conf.default, cp eine Datei mit dem Namen www.conf
Führen Sie php-fpm aus das vierte Mal
Fehlgeschlagen: Der Port ist belegt
Lösung: Beenden Sie diesen Prozess
sudo lsof -i tcp:9000#Finden Sie die Prozessnummer, die Port 9000 belegt
kill -9 port#Töten!
Fünftes Mal, dass PHP-FPM ausgeführt wird
Erfolg!
##Ergänzung:
Bei der Konfiguration von nginx gibt es einen kleinen Unterschied. Auf dem Mac hört php-fpm direkt auf den 9000-Port, aber auf dem Server hört es auf php7.0-fpm.sock, aber nicht auf den socket-Datei. Diese Methode ist möglicherweise schneller, daher müssen Sie
fastcgi_pass 127.0.0.1:9000;
in der PHP-Konfiguration auf Nginx ändern in:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
, um PHP erfolgreich auszuführen
Empfohlenes Lernen: „PHP-Video-Tutorial“
Weiter hinzufügen 🔜 set-enabled/default), Starten Sie den Server neu.
server { ... client_max_body_size 80m; ... }Ich muss überhaupt nicht recherchieren... Die MP4 kann nicht hochgeladen werden. Ich muss das nur selbst herausfinden... Unbequem:(
Hinweis: Es wird jetzt eher empfohlen Verwenden Sie unter Ubuntu apt anstelle von apt-get ... also ist es Zeit für eine Änderung
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn Mac Nginx PHP nicht analysiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!