Heim  >  Artikel  >  Backend-Entwicklung  >  So ändern Sie die Sitzungskonfiguration in PHP

So ändern Sie die Sitzungskonfiguration in PHP

PHPz
PHPzOriginal
2023-04-11 09:16:14714Durchsuche

Session ist ein sehr häufig verwendeter Mechanismus in PHP. Er speichert die vom Benutzer während des Besuchs der Website generierten Daten auf dem Server, damit die Daten in nachfolgenden Vorgängen verwendet werden können. Beispielsweise kann der Benutzer auf einer Shopping-Website, nachdem er Artikel in den Warenkorb gelegt hat, die in der Sitzung gespeicherten Warenkorbdaten auf der Checkout-Seite verwenden.

In PHP wird die Sitzung jedoch standardmäßig in Form einer Datei auf dem Server gespeichert. Obwohl diese Methode einfach ist, birgt sie einige potenzielle Probleme. Wenn die Website beispielsweise eine hohe Anzahl an Besuchen aufweist, wird eine große Anzahl von Sitzungsdateien auf dem Server generiert, was leicht zu Problemen mit der Serverleistung führen kann. Da Sitzungen außerdem lokal auf dem Server gespeichert werden, sind sie ebenfalls betroffen durch Probleme wie Serverabstürze und das Löschen von Sitzungsdateien.

Um die Stabilität und Leistung von Session zu verbessern, müssen wir daher einige Anpassungen an Session vornehmen. Im Folgenden nehmen wir die PHP 7.2-Version als Beispiel, um vorzustellen, wie die PHP-Konfiguration von Session geändert wird.

  1. Ändern Sie den Parameter „session.save_handler“

In PHP ist session.save_handler der Name des Sitzungsspeicherprozessors. Sie können die Art und Weise anpassen, wie die Sitzung gespeichert wird, indem Sie diesen Parameter ändern.

Für Websites mit hohem Datenverkehr können wir session.save_handler auf redis oder memcached setzen, um die Sitzung im Cache zu speichern. Dadurch kann die Anzahl der Sitzungsdateien auf dem Server erheblich reduziert und die Serverleistung verbessert werden.

Das folgende Codebeispiel zeigt, wie eine Sitzung in Redis gespeichert wird:

session_save_path('tcp://127.0.0.1:6379?database=0');
ini_set('session.save_handler', 'redis');
  1. Ändern Sie die Parameter session.gc_probability und session.gc_divisor

In PHP sind session.gc_probability und session.gc_divisor Parameter des Session-Garbage-Collection-Mechanismus . Sie werden verwendet, um die Häufigkeit des Sitzungsrecyclings zu steuern.

Standardmäßig ist der Wert von session.gc_probability 1, was bedeutet, dass jede Anfrage eine bestimmte Wahrscheinlichkeit hat, ein Sitzungsrecycling auszulösen, und der Wert von session.gc_divisor ist 100, was bedeutet, dass jede Anfrage eine Auslösewahrscheinlichkeit von 1 % hat es. Sitzungsrecycling. Dadurch wird die Speicherbereinigung sehr häufig durchgeführt und die Serverleistung beeinträchtigt.

Daher können wir die Werte von session.gc_probability und session.gc_divisor entsprechend anpassen, um die Anzahl der Auslöser des Session-Recycling-Mechanismus zu reduzieren.

Das folgende Codebeispiel zeigt, wie die Werte von session.gc_probability und session.gc_divisor auf größere Werte gesetzt werden, um die Anzahl der Auslöser des Recyclingmechanismus zu reduzieren:

ini_set('session.gc_probability', 50);
ini_set('session.gc_divisor', 1000);
  1. Ändern Sie den Parameter session.gc_maxlifetime

In PHP ist session .gc_maxlifetime der Parameter des Sitzungslebenszyklus. Gibt die maximale Speicherdauer von Sitzungsdateien an. Sitzungsdateien, die diese Zeit überschreiten, werden automatisch gelöscht.

Standardmäßig beträgt der Wert von session.gc_maxlifetime 1440 Sekunden (24 Minuten), was bedeutet, dass die Sitzungsdatei nur 24 Minuten überleben kann. Bei einigen Anwendungen, die die Sitzung über einen längeren Zeitraum speichern müssen, ist diese Zeit möglicherweise zu kurz, was zum Verlust der Sitzung führt.

Daher können wir die Überlebenszeit der Sitzung entsprechend verlängern, indem wir den Parameter session.gc_maxlifetime ändern.

Das folgende Codebeispiel zeigt, wie der Wert von session.gc_maxlifetime auf 3600 Sekunden (1 Stunde) festgelegt wird:

ini_set('session.gc_maxlifetime', 3600);
  1. Ändern Sie den Parameter „session.cookie_lifetime“

In PHP ist session.cookie_lifetime der Lebenszyklusparameter von Sitzungscookie. Sie stellt die Überlebenszeit der serverseitigen Sitzungs-ID im benutzerseitigen Cookie dar. Nach Ablauf dieser Zeit muss der Benutzer eine neue Sitzungs-ID neu generieren.

Standardmäßig ist der Wert von session.cookie_lifetime 0, was bedeutet, dass das Sitzungscookie abläuft, nachdem der Benutzer den Browser schließt. Auf diese Weise muss sich der Benutzer bei einigen Anwendungen, die eine Sitzung über einen längeren Zeitraum speichern müssen, nach dem Schließen des Browsers erneut anmelden.

Daher können wir die Überlebenszeit von Session-Cookies verlängern und die Rolle von Session maximieren, indem wir den Parameter session.cookie_lifetime ändern.

Das folgende Codebeispiel zeigt, wie der Wert von session.cookie_lifetime auf 3600 Sekunden (1 Stunde) festgelegt wird:

ini_set('session.cookie_lifetime', 3600);

Zusammenfassung

Durch Anpassen der PHP-Konfiguration von Session können wir Session optimieren und stärken sowie die Serverleistung und -stabilität verbessern . Die oben vorgestellten PHP-Konfigurationen können als Referenz verwendet werden und Entwickler können sie entsprechend ihren tatsächlichen Anforderungen anpassen.

Das obige ist der detaillierte Inhalt vonSo ändern Sie die Sitzungskonfiguration in PHP. 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