Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem, dass der PHP-CGI-Prozess automatisch geschlossen wird

So lösen Sie das Problem, dass der PHP-CGI-Prozess automatisch geschlossen wird

PHPz
PHPzOriginal
2023-03-29 11:28:511386Durchsuche

Linux PHP-CGI-Prozess wird automatisch heruntergefahren

Der PHP-CGI-Prozess ist eine sehr verbreitete Methode zum Ausführen von PHP-Skripten, aber manchmal werden diese Prozesse automatisch heruntergefahren, was dazu führt, dass die Website nicht richtig läuft. In diesem Artikel erfahren Sie, wie Sie das Problem des automatischen Schließens des PHP-CGI-Prozesses lösen können.

  1. Protokolle anzeigen

Zuerst müssen Sie Ihre Systemprotokolle überprüfen, um festzustellen, warum der PHP-CGI-Prozess automatisch heruntergefahren wird. Bei den meisten Linux-Distributionen befinden sich Systemprotokolldateien im Verzeichnis /var/log. Sie können den folgenden Befehl verwenden, um aktuelle Systemprotokolle anzuzeigen:

$ sudo tail -f /var/log/syslog

Wenn der PHP-CGI-Prozess aufgrund von unzureichendem Speicher oder anderen Ressourcen automatisch heruntergefahren wird, werden in der Protokolldatei Informationen ähnlich der folgenden angezeigt:

Apr 15 14:35:26 myserver kernel: Out of memory: Kill process 1234 (php-cgi) score 5678 or sacrifice child

Das Obige Informationen deuten darauf hin, dass das System den PHP-CGI-Prozess beendet hat, um Speicher freizugeben.

  1. Passen Sie das Prozesslimit an

Wenn Ihr System den PHP-CGI-Prozess aufgrund unzureichender Ressourcen automatisch abschaltet, können Sie das Problem lösen, indem Sie das Prozesslimit anpassen. Prozessgrenzen können mit dem Befehl ulimit angepasst werden. Der folgende Befehl erhöht beispielsweise die maximale Speichermenge, die von jedem Prozess verwendet werden kann, auf 512 MB:

$ ulimit -v 524288

Sie können diesen Befehl zum Startskript des PHP-CGI-Prozesses hinzufügen, damit er sofort wirksam wird, wenn der PHP-CGI-Prozess ausgeführt wird begonnen.

  1. Passen Sie das CGI-Timeout an.

Wenn Ihr PHP-CGI-Prozess außerdem automatisch heruntergefahren wird, weil er zu lange läuft, können Sie dieses Problem lösen, indem Sie das CGI-Timeout anpassen. Das CGI-Timeout kann in Ihrer Webserver-Konfigurationsdatei festgelegt werden. Beispielsweise legt die folgende Nginx-Konfigurationsdatei das CGI-Timeout auf 30 Sekunden fest:

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_read_timeout 30;
    include fastcgi_params;
}

Sie können fastcgi_read_timeout auf einen geeigneten Wert setzen, den Ihre PHP-Anwendung benötigt.

  1. Verwenden Sie Process Manager

Wenn Sie schließlich auf ein ungelöstes Problem beim automatischen Herunterfahren des PHP-CGI-Prozesses stoßen, können Sie die Verwendung von Process Manager in Betracht ziehen. Process Manager kann PHP-CGI-Prozesse automatisch überwachen und sie nach einem Absturz oder Stopp automatisch neu starten. Zu den gängigen Prozessmanagern gehören Supervisor und systemd.

Bevor Sie Prozessmanager verwenden, müssen Sie verstehen, wie man sie verwendet. Wenn Sie Supervisor hier als Beispiel nehmen, können Sie den folgenden Befehl verwenden, um es zu installieren:

$ sudo apt-get install supervisor

Nach der Installation müssen Sie eine Supervisor-Konfigurationsdatei erstellen, zum Beispiel:

[program:php-cgi]
command=/usr/bin/php-cgi -b 127.0.0.1:9000
autostart=true
autorestart=true
redirect_stderr=true

Die obige Konfigurationsdatei ermöglicht es Supervisor, das automatisch zu starten und zu überwachen PHP-CGI-Prozess. Sie können die Konfigurationsdatei entsprechend Ihren PHP-CGI-Prozesseinstellungen ändern.

Abschließend müssen Sie Supervisor mit dem folgenden Befehl starten:

$ sudo systemctl start supervisor

Zusammenfassung:

Der PHP-CGI-Prozess ist eine gängige Methode zum Ausführen von PHP-Skripten auf Webservern. Wenn Ihr PHP-CGI-Prozess automatisch heruntergefahren wird, können Sie das Problem lösen, indem Sie Systemprotokolle anzeigen, Prozessgrenzen anpassen, CGI-Timeouts anpassen und den Prozessmanager verwenden. Um sicherzustellen, dass der PHP-CGI-Prozess immer verfügbar ist, können Sie eine Kombination der oben genannten Methoden verwenden.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass der PHP-CGI-Prozess automatisch geschlossen wird. 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