VestaCP Nachdem der WEB-Dienst das Template „phpfcgid“ ausgewählt hat, sorgen eine Vielzahl von PHP-CGI-Prozessen dafür, dass der Speicher schnell erschöpft ist:
- Nach dem Neustart des Servers ging mir im Grunde einige Stunden lang der Speicher aus.
- Der zuvor inaktive PHP-CGI-Prozess wird nicht beendet, und ein Prozess führt fast 1 Unterprozesse aus, die mindestens 20 MB Speicher verbrauchen.
Wird in SSH verwendet htop
Befehl (Installation erforderlich), können Sie diesen Status anzeigen ▼
Wenn Sie eine Fehlermeldung "-bash: htop: Befehl nicht gefunden" erhalten, wenn Sie den Befehl htop verwenden, sehen Sie sich bitte dieses Tutorial für die Lösung an ▼
Eine große Anzahl von PHP-CGI-Prozessen führt dazu, dass der Speicher schnell erschöpft ist.Das Problem liegt in VestaCPCentOSIn der phpfcgid-Vorlage wird eine nicht optimierte Konfiguration verwendet.
- VestaCP in der phpfcgid-Vorlage, legen Sie 1 PHP-CGI-Prozess fest, um bis zu 20 untergeordnete Prozesse auszuführen.
Anfrage /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh
Zeile 13 der Datei:
export PHP_FCGI_CHILDREN=20
Ein solches Setup verstößt jedoch gegen die Warnung von Apache in der Dokumentation zur Verwaltung von PHP-Unterprozessen:
Verwaltung von untergeordneten PHP-Prozessen (PHP_FCGI_CHILDREN) sollte immer mit mod_fcgid deaktiviert werden, das nur jeweils eine Anfrage an von ihm erzeugte Anwendungsprozesse weiterleitet; daher werden alle von PHP erstellten untergeordneten Prozesse nicht effektiv verwendet. (Außerdem werden die untergeordneten PHP-Prozesse möglicherweise nicht ordnungsgemäß beendet .) Standardmäßig und mit der Einstellung der Umgebungsvariablen PHP_FCGI_CHILDREN=0, die Verwaltung untergeordneter PHP-Prozesse ist deaktiviert.
Da der PHP-CGI-Prozess im mod_fcgid-Modul von Apache nur auf eine Anfrage antworten und gleichzeitig ausgeführt werden kann, ist der untergeordnete PHP-CGI-Prozess sehr ineffizient.
Daher sollten die Einstellungen für die Verwaltung von PHP-Subprozessen direkt deaktiviert werden ▼
PHP_FCGI_CHILDREN=0
Wenn Sie bereits einen generierten virtuellen Host haben, müssen Sie gleichzeitig die Konfigurationsdateien aller Websites ändern ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
Fügen Sie nach dem Öffnen der fcgi-starter-Konfigurationsdatei das folgende ▼ ein
export PHP_FCGI_CHILDREN=20
Geändert zu ▼
export PHP_FCGI_CHILDREN=0
- Nach der Änderung wird die PHP-Unterprozessverwaltung im mod_fcgid-Modus deaktiviert.
- Der PHP-CGI-Prozess erzeugt keine untergeordneten Prozesse mehr, was viel Speicher sparen kann.
Außerdem setzt VestaCP keinen Beendigungsmechanismus für Leerlaufprozesse:
- Alle neu ausgeführten PHP-CGI-Prozesse verwenden weiterhin Speicher, bis das System neu gestartet wird.
Um dies zu beheben, fügen Sie einfach die Konfigurationsdatei mod_fcgid hinzu /etc/httpd/conf.d/fcgid.conf
Fügen Sie die folgenden Einstellungen in ▼ hinzu
FcgidIdleTimeout 120
- Stellen Sie Apache so ein, dass PHP-CGI-Prozesse, die für 2 Minuten (120 Sekunden) inaktiv sind, automatisch beendet werden.
Nachdem die Einrichtung abgeschlossen ist, starten Sie den Apache-Dienst neu ▼
service httpd restart
Nach dem Neustart des Dienstes werden die Hunderte von PHP-CGI-Prozessen, die zuvor in HTOP angezeigt wurden, nicht mehr angezeigt.
Typischerweise verbraucht ein einzelner PHP-CGI-Prozess für einen einzelnen Vesta CP-Benutzer 30 bis 40 MB Speicher, was völlig zufriedenstellend istLinuxHost-Anforderungen.
Daher网络 网络Menschen wollen es gut machenSEO, ist es sehr wichtig, die Konfiguration von Vesta CP und Vorlagen zu optimieren ^_^
Sie können sich die folgenden Tutorials im VestaCP-Panel ▼ ansehen
Hoffnung Chen Weiliang Blog ( https://www.chenweiliang.com/ ) hat „Optimizing VestaCP phpfcgid Template Configuration Process Multiple Memory Exhaustion 500 Errors“ geteilt, was für Sie hilfreich ist.
Willkommen, um den Link dieses Artikels zu teilen:https://www.chenweiliang.com/cwl-735.html
Willkommen im Telegrammkanal von Chen Weiliangs Blog, um die neuesten Updates zu erhalten!
📚 Dieser Leitfaden enthält einen enormen Mehrwert. 🌟Dies ist eine seltene Gelegenheit, verpassen Sie sie nicht! ⏰⌛💨
Teilen und liken, wenn es euch gefällt!
Ihr Teilen und Ihre Likes sind unsere ständige Motivation!