


Dieser Artikel erklärt hauptsächlich die chinesische detaillierte Beschreibung einiger wichtiger Parameter von PHP-FPM unter Linux und stellt detailliert die Parameteroptimierung von PHP-FPM im Hinblick auf die Leistung vor
php -fpm Detaillierte Erläuterung wichtiger Parameter von .conf
pid = run/php-fpm.pid
#pid-Einstellung, der Standardwert ist var/run /php im Installationsverzeichnis -fpm.pid wird empfohlen,
error_log = log/php-fpm.log
# Fehlerprotokoll zu aktivieren, der Standardwert ist var/log /php-fpm.log im Installationsverzeichnis
log_level = Notice
#Error Level sind: Alert (muss sofort bearbeitet werden), Error (Fehlersituation), Warnung (Warnsituation), Hinweis (allgemeine wichtige Informationen), Debug (Debugging-Informationen). dass ein SIGSEGV- oder SIGBUS-Fehler innerhalb des durch Emergency_restart_interval festgelegten Werts auftritt. Wenn die Anzahl der PHP-CGI-Prozesse Emergency_Restart_Threshold überschreitet, wird PHP-FPM ordnungsgemäß neu gestartet. Diese beiden Optionen bleiben im Allgemeinen auf ihren Standardwerten.
process_control_timeout = 0
#Legen Sie das Zeitlimit fest, damit der untergeordnete Prozess das Wiederverwendungssignal des Hauptprozesses akzeptiert. Verfügbare Einheiten: s (Sekunden), m (Minuten), h (Stunden). ), Oder d (Tage) Standardeinheit: s (Sekunden). , wenn es zum Debuggen dient, ändern Sie es in „Nein“. In FPM ist es möglich, mehrere Prozesspools mit unterschiedlichen Einstellungen auszuführen. Diese Einstellungen können für jeden Prozesspool individuell festgelegt werden.
listen = 127.0.0.1:9000#fpm Überwachungsport, die von PHP in Nginx verarbeitete Adresse, im Allgemeinen ist der Standardwert ausreichend. Verfügbare Formate sind: „ip:port“, „port“, „/path/to/unix/socket“. Jeder Prozesspool muss festgelegt werden.
listen.backlog = -1#Backlog-Nummer, -1 bedeutet unbegrenzt, wird vom Betriebssystem bestimmt, kommentieren Sie diese Zeile einfach aus.
listen.allowed_clients = 127.0.0.1#Zugriff auf die IP des FastCGI-Prozesses zulassen, um die IP nicht einzuschränken Hosts können auch auf diesen FPM-Prozess zugreifen. Listen sollten auf eine lokale IP eingestellt sein, auf die zugegriffen werden kann. Der Standardwert ist beliebig. Jede Adresse wird durch ein Komma getrennt. Wenn sie nicht gesetzt oder leer ist, darf jeder Server eine Verbindung anfordern
listen.owner = wwwlisten.group = wwwlisten.mode = 0666
Benutzer = www
Gruppe = www
# Konto und Gruppe zum Starten des Prozesses
pm = dynamisch
# Für dedizierte Server kann pm auf statisch gesetzt werden.
pm.max_children #,
Maximale Anzahl untergeordneter Prozesse
pm.start_servers #
pm.min_spare_servers #, um die Mindestanzahl an Leerlaufprozessen sicherzustellen. Wenn der Leerlaufprozess kleiner als dieser Wert ist, erstellen Sie einen neuen untergeordneten Prozess
pm.max_spare_servers #
, um die Anzahl der Leerlaufprozesse sicherzustellen Maximalwert, wenn der Leerlaufprozess größer als dieser Wert ist, wird dieser bereinigt
pm.max_requests = 1000#Set Die Anzahl der verarbeiteten Anforderungen, bevor jeder untergeordnete Prozess neu gestartet wird. Dies ist sehr nützlich für Module von Drittanbietern. Wenn die Anforderung auf „0“ gesetzt ist, entspricht sie der Umgebungsvariable PHP_FCGI_MAX_REQUESTS .
pm.status_path = /status
#Die URL der FPM-Statusseite kann nicht aufgerufen werden Verwenden Sie
ping.path = /ping#Die Ping-URL der FPM-Überwachungsseite. Wenn sie nicht festgelegt ist, kann auf diese Seite nicht zugegriffen werden Erkennen Sie extern, ob FPM aktiv ist und auf Anfragen antworten kann. Bitte beachten Sie, dass es mit einem Schrägstrich (/) beginnen muss.
ping.response = pong# Wird verwendet, um die Antwort auf die Ping-Anfrage zu definieren. Der zurückgegebene Text/einfache Formattext ist HTTP 200. Standardwert: pong.
request_terminate_timeout = 0#Legen Sie die Timeout-Abbruchzeit für eine einzelne Anfrage fest. Diese Option kann für Skripte nützlich sein, bei denen die „max_execution_time“ in der php.ini-Einstellung die Ausführung von Skripten nicht abbricht Aus bestimmten Gründen bedeutet die Einstellung „0“ „Aus“. Sie können versuchen, diese Option zu ändern, wenn 502-Fehler häufig auftreten.
request_slowlog_timeout = 10s#Wenn eine Anfrage den Timeout-Zeitraum festlegt, werden die entsprechenden PHP-Call-Stack-Informationen vollständig in das langsame Protokoll geschrieben. Auf „0“ gesetzt bedeutet „Aus“. '
slowlog = log/$pool.log.slow
#Langsames Anforderungsprotokoll, verwendet mit request_slowlog_timeout
rlimit_files = 1024
#Set der rlimit-Grenzwert des Dateiöffnungsdeskriptors: Der systemdefinierte Wert des Standardöffnungshandles ist 1024, der mit ulimit -n angezeigt und mit ulimit -n 2048 geändert werden kann.
rlimit_core = 0
#Legen Sie den maximalen Kern-rlimit-Grenzwert fest. Verfügbare Werte: „unbegrenzt“, 0 oder positive Ganzzahl. Standardwert: systemdefinierter Wert.
chroot =
#Chroot-Verzeichnis beim Start. Das definierte Verzeichnis muss ein absoluter Pfad sein. Wenn nicht festgelegt, wird chroot nicht verwendet.
chdir =
#Legen Sie das Startverzeichnis fest, in das beim Start automatisch verwiesen wird. Das definierte Verzeichnis muss ein absoluter Pfad sein: aktuelles Verzeichnis oder /directory (beim Chrooten)
catch_workers_output = ja
#Umleiten von stdout und stderr während des laufenden Prozesses zur Hauptfehlerprotokolldatei. Wenn nicht festgelegt, werden stdout und stderr gemäß den FastCGI-Standards umgeleitet Wert: leer.
php-fpm-Parameteroptimierung
pm = dynamisch; 🎜>Gibt an, welche Prozessnummernverwaltungsmethode verwendet wird
Gibt an, dass die Anzahl der PHP-FPM-Prozesse dynamisch ist, beginnend mit der durch pm.start_servers angegebenen Anzahl Wenn viele Anfragen vorliegen, wird die Anzahl der inaktiven Prozesse automatisch erhöht. Wenn die Anzahl der Prozesse groß ist, wird die Anzahl der redundanten Prozesse entsprechend bereinigt ist nicht mehr als pm.max_spare_servers
statischbedeutet, dass die Anzahl der PHP-FPM-Prozesse statisch ist. Die Anzahl der Prozesse ist die von pm.max_children angegebene Anzahl von Anfang bis Ende wird nicht mehr erhöht oder verringert.
pm.max_children = 300; Anzahl der im statischen Modus gestarteten PHP-FPM-Prozesse pm.start_servers = 20; Anzahl der gestarteten PHP-FPM-Prozesse im dynamischen Modus
pm.min_spare_servers = 5; Die Mindestanzahl der PHP-FPM-Prozesse im dynamischen Modus
pm.max_spare_servers = 35;Die maximale Anzahl von PHP-FPM-Prozessen im dynamischen Modus
Wenn pm statisch ist, dann ist tatsächlich nur der Parameter pm.max_children wirksam. Das System öffnet eine festgelegte Anzahl von PHP-FPM-Prozessen
pm. max_requests = 10240;
Das größte Problem während des Nginx-PHP-FPM-Konfigurationsprozesses ist ein interner Verlust: Die Auslastung des Servers ist nicht groß, aber die Speichernutzung nimmt schnell zu und verbraucht dann schnell die Swap-Partition Das System hängt sich schnell auf! Tatsächlich weist PHP-CGI laut der offiziellen Einführung keine Speicherlecks auf. Nach Abschluss jeder Anforderung fordert PHP-CGI den Speicher zurück, gibt ihn jedoch nicht an das Betriebssystem frei von php-cgi belegt sein.
Die offizielle Lösung besteht darin, den Wert von PHP_FCGI_MAX_REQUESTS zu verringern. Wenn Sie php-fpm verwenden, ist die entsprechende php-fpm.conf max_requests. Dieser Wert gibt an, wie viele Anfragen gesendet werden, bevor der Thread neu gestartet wird . Wir müssen diesen Wert entsprechend senken, damit php-fpm automatisch Speicher freigibt. Er ist nicht 51200 und so weiter. Tatsächlich gibt es einen anderen Wert, der damit zusammenhängt php-fpm Wie viele Prozesse werden erstellt, sodass der tatsächliche Speicherverbrauch bei jeder Anforderung max_children*max_requests*memory beträgt. Auf dieser Grundlage können wir den Speicherverbrauch abschätzen, sodass kein Skript zum Beenden geschrieben werden muss.
request_terminate_timeout = 30;
Maximale Ausführungszeit, die auch in php.ini konfiguriert werden kann (max_execution_time)
request_slowlog_timeout = 2 ; Langsames Protokoll aktivieren
slowlog = log/$pool.log.slow; Langsamer Protokollpfad
rlimit_files = 1024; php-fpm Einschränkungen für offene Dateideskriptoren
Die Parameter von php-fpm.conf sind klar angegeben und Sie sollten sie sich merken können, solange Sie sie ein paar Mal lesen. Was den Leistungsplan php-fpm betrifft sollte anhand der tatsächlichen Situation ermittelt und mehrmals getestet werden. Erhalten Sie die beste Konfigurationslösung.
Artikel, die Sie interessieren könnten:
Detaillierte Schritte für Daten Migration und Datenausfüllung in Laravel
Das obige ist der detaillierte Inhalt vonEinführung in die PHP-FPM-Parameterkonfiguration und detaillierte Erläuterung der Parameteroptimierung unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PHPSSIONS CANSTORESTRINGEN, ZUGNALTEN, ARRAYS, ANDOBjekte.1.

TostartaphpSession, useSession_start () atthescript'Sbeginning.1) PlaCEITBEFOREANYOUTPUTTOTHESESSIONSCOOKIE.2) useSsionsforuserDatalikeloginStatusOrShopingCarts

Die Sitzung der Sitzung bezieht sich auf die Generierung einer neuen Sitzungs -ID und die Ungültigmachung der alten ID, wenn der Benutzer sensible Vorgänge bei festgelegten Sitzungsangriffen ausführt. Die Implementierungsschritte umfassen: 1. Erkennen sensibler Vorgänge, 2. Erstellen neuer Sitzungs-ID, 3..

PHP -Sitzungen haben erhebliche Auswirkungen auf die Anwendungsleistung. Zu den Optimierungsmethoden gehören: 1. Verwenden Sie eine Datenbank, um Sitzungsdaten zu speichern, um die Antwortgeschwindigkeit zu verbessern; 2. Reduzieren Sie die Verwendung von Sitzungsdaten und speichern Sie nur die erforderlichen Informationen. 3.. Verwenden Sie einen nicht blockierenden Sitzungsprozessor, um die Parallelitätsfunktionen zu verbessern. 4. Passen Sie die Ablaufzeit der Sitzung an, um Benutzererfahrung und Serverbelastung auszugleichen. 5. Verwenden Sie persistente Sitzungen, um die Anzahl der Les- und Schreibzeiten zu verringern.

PhpSessionsaresServer-Side, whilecookiesareclient-Side.1) SESSIsions Storedataontheserver, Aremoresecure und Handlelargerdata.2) CookieStoredataoneTheClient, AslosenSecure und LimitedInsiesindaSsibilitäts- und -Stasibilitäts- und -Stasibilitäts- und -Anssibilitäts- und -Anssibilitätsporsedataandcookiesefornonsesibel, adailliertes, adailliertes, adailliertes, adailliertes, adailliertes, addiertes-addiertes- und -Staillieren- und -Anssistieren, und -Anssibilitätsporsedaten- und -Sta- und addierta und -Anssibilitäts- und addiertes- und addailliert.

PhpidentifiesAsersSSessionUsingSSessionCookiesAndSessionIDs.1) WHANE Session_Start () iscalled, phpGeneratesAuniqueSessionIDStoredInacookienMamePhpSsidontonTheusers.2) thisidallowStoretrieVessionDataFromtheServer.

Die Sicherheit von PHP -Sitzungen kann durch folgende Maßnahmen erreicht werden: 1. Verwenden Sie Session_regenerate_id (), um die Sitzungs -ID zu regenerieren, wenn sich der Benutzer anmeldet oder eine wichtige Operation ist. 2. Verschlüsseln Sie die Übertragungssitz -ID durch das HTTPS -Protokoll. A. Verwenden Sie Session_save_path (), um das sichere Verzeichnis anzugeben, um Sitzungsdaten zu speichern und Berechtigungen korrekt festzulegen.

PhpSessionFilesArestoredinTHedRectorySpecifiedBySession.save_path, typischerweise/tmponunix-likesystemsorc: \ windows \ temponwindows


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver CS6
Visuelle Webentwicklungstools

Dreamweaver Mac
Visuelle Webentwicklungstools

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version
