Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn Mac Nginx PHP nicht analysiert?

Was soll ich tun, wenn Mac Nginx PHP nicht analysiert?

藏色散人
藏色散人Original
2021-07-23 10:02:022699Durchsuche

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.

Was soll ich tun, wenn Mac Nginx PHP nicht analysiert?

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!

Stellungnahme:
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