


Implementierungsmethode zur Verwendung von Memcache zum Teilen von Sitzungsdaten in thinkPHP mit mehreren Domänennamen_php-Beispiel
Das Beispiel in diesem Artikel beschreibt die Implementierungsmethode der Verwendung von Memcache zum Teilen von Sitzungsdaten in thinkPHP mit mehreren Domänennamen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1. Ursprung des Problems
Etwas größere Websites verfügen normalerweise über mehrere Server, auf denen Module mit unterschiedlichen Funktionen ausgeführt werden, und für eine umfassende Website ist das Benutzersystem einheitlich, d. h. ein Satz von Benutzernamen und Passwörtern kann verwendet werden kann für die Anmeldung an allen Modulen der gesamten Website verwendet werden. Es ist für jeden Server relativ einfach, Benutzerdaten auszutauschen. Sie müssen lediglich einen Datenbankserver im Backend installieren, und jeder Server kann über eine einheitliche Schnittstelle auf Benutzerdaten zugreifen. Es besteht jedoch immer noch ein Problem: Nachdem sich der Benutzer bei diesem Server angemeldet hat, muss er sich beim Betreten anderer Module eines anderen Servers erneut anmelden. Dies ist eine einmalige Anmeldung, und alle gängigen Probleme werden zugeordnet Tatsächlich handelt es sich um die Art und Weise, wie SESSION-Daten zwischen verschiedenen Servern ausgetauscht werden.
2. Wie PHP SESSION funktioniert
Bevor wir das Problem lösen, wollen wir zunächst verstehen, wie PHP SESSION funktioniert. Wenn sich der Client (z. B. ein Browser) bei der Website anmeldet, kann die besuchte PHP-Seite session_start() verwenden, um die SESSION zu öffnen, wodurch die eindeutige SESSION-ID des Clients generiert wird (diese ID kann über die Funktion session_id abgerufen/festgelegt werden). ()). Die SESSION-ID kann auf zwei Arten auf dem Client gespeichert werden, sodass das PHP-Programm beim Anfordern verschiedener Seiten die SESSION-ID des Clients lernen kann. Zum einen wird die SESSION-ID standardmäßig automatisch zur GET-URL oder zum POST-Formular hinzugefügt . Unten ist der Variablenname PHPSESSID; der andere dient zum Speichern der SESSION-ID im COOKIE. Standardmäßig ist der Name dieses COOKIES PHPSESSID. Hier verwenden wir zur Erläuterung hauptsächlich die COOKIE-Methode, da diese weit verbreitet ist.
Wo werden also die SESSION-Daten gespeichert? Natürlich auf der Serverseite, aber statt im Speicher wird es in einer Datei oder Datenbank gespeichert. Standardmäßig ist die in php.ini festgelegte SESSION-Speichermethode Dateien (session.save_handler = files). Das heißt, die SESSION-Daten werden durch Lesen und Schreiben von Dateien gespeichert, und das Verzeichnis, in dem die SESSION-Datei gespeichert wird, wird durch die Sitzung angegeben. save_path, und der Dateiname beginnt mit sess _ ist das Präfix, gefolgt von SESSIONID, wie zum Beispiel: sess_c72665af28a8b14c0fe11afe3b59b51b. Die Daten in der Datei sind die SESSION-Daten nach der Serialisierung. Wenn die Zugriffsmenge groß ist, werden möglicherweise mehr SESSION-Dateien generiert. In diesem Fall können Sie ein hierarchisches Verzeichnis zum Speichern von SESSION-Dateien einrichten, was die Effizienz erheblich verbessert. Die Einstellungsmethode lautet: session.save_path=". N;/save_path“, N ist hierarchisch. Ebene, save_path ist das Startverzeichnis. Beim Schreiben von SESSION-Daten ruft PHP die SESSION_ID des Clients ab und verwendet dann diese SESSION-ID, um die entsprechende SESSION-Datei im angegebenen SESSION-Dateispeicherverzeichnis zu finden. Wenn sie nicht vorhanden ist, erstellen Sie sie und serialisieren Sie schließlich die Daten und schreiben Sie sie hinein die Datei. Das Lesen von SESSION-Daten ist ein ähnlicher Vorgang. Die gelesenen Daten müssen deserialisiert und die entsprechende SESSION-Variable generiert werden.
3. Haupthindernisse und Lösungen für die gemeinsame Nutzung mehrerer Server SESSION
Wenn wir verstehen, wie SESSION funktioniert, können wir feststellen, dass jeder Server standardmäßig eine SESSION-ID für denselben Client generiert. Für denselben Benutzerbrowser lautet die von Server A generierte SESSION-ID beispielsweise 30de1e9de3192ba6ce2992d27a1b6a0a generiert c72665af28a8b14c0fe11afe3b59b51b. Darüber hinaus werden die SESSION-Daten von PHP separat im Dateisystem dieses Servers gespeichert.
Nachdem Sie das Problem identifiziert haben, können Sie mit der Lösung beginnen. Wenn Sie SESSION-Daten teilen möchten, müssen Sie zwei Ziele erreichen: Zum einen muss die von jedem Server für denselben Client generierte SESSION-ID dieselbe sein und über dasselbe COOKIE weitergeleitet werden können, was bedeutet, dass jeder Server dazu in der Lage sein muss Lesen Sie dieselbe SESSION-ID. Das andere COOKIE mit dem Namen PHPSESSID ist die Speichermethode/der Speicherort der SESSION-Daten, auf die alle Server zugreifen können. Einfach ausgedrückt teilen sich mehrere Server die SESSION-ID des Clients und müssen auch die SESSION-Daten des Servers teilen.
Die Umsetzung des ersten Ziels ist eigentlich sehr einfach. Sie müssen lediglich die Domäne des COOKIES speziell festlegen. Standardmäßig ist die Domäne des COOKIE der Domänenname/die IP-Adresse des aktuellen Servers unterschiedlich, Auf die von den einzelnen Servern gesetzten COOKIE kann nicht von jedem anderen aus zugegriffen werden. Beispielsweise kann der Server von www.aaa.com den vom Server von www.bbb.com gesetzten COOKIE nicht lesen oder schreiben. Die Server derselben Website, über die wir hier sprechen, haben ihre eigene Besonderheit, das heißt, sie gehören zur gleichen Domäne der ersten Ebene. Beispiel: tieba.xiaoyuan.com und www.xiaoyuan.com gehören beide zur Domäne .xiaoyuan .com, dann können wir die Domain des COOKIES auf .xiaoyuan.com setzen, damit tieba.xiaoyuan.com, www.xiaoyuan.com usw. auf dieses COOKIE zugreifen können. Die Einstellungsmethode im PHP-Code lautet wie folgt:
<?php ini_set('session.cookie_domain', '.xiaoyuan.com'); ?>
Auf diese Weise wird der Zweck erreicht, dass jeder Server dieselbe Client-SESSION-ID verwendet.
Das zweite Ziel kann durch die Verwendung von Dateifreigabe erreicht werden. Es gibt zwei Möglichkeiten, es zu lösen: Eine besteht darin, eine Datenspeichersitzung zu verwenden, und die andere darin, Memcache auszuprobieren. Verwenden Sie MEMCACHE, um es hier zu lösen.
Ich verwende das Thinkphp-Framework, das bereits den Memcache-Zugriff auf Sitzungen unterstützt. Nach dem Einrichten des Memcache-Servers müssen Sie nur die IP und den Port von Memcache in der Konfigurationsdatei festlegen und dann den Parameter COOKIE_DOMAIN angeben Drücken Sie die Sitzung wie gewohnt. Jetzt können Sie die Sitzung mit mehreren Domänennamen teilen
Leser, die an weiteren thinkPHP-bezogenen Inhalten interessiert sind, können sich die speziellen Themen dieser Website ansehen: „ThinkPHP Erste Schritte Tutorial“, „ThinkPHP Template Operation Skills Summary“, „ThinkPHP Common Methods Summary“, „Smarty Template Basic Tutorial“ und „Zusammenfassung der PHP-Template-Technologie“.
Ich hoffe, dass dieser Artikel für jedermann bei der PHP-Programmierung basierend auf dem ThinkPHP-Framework hilfreich sein wird.

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Benutzer können die Hintergrundbilder, die sie erhalten, mit Freunden teilen, wenn sie WallpaperEngine verwenden. Viele Benutzer wissen nicht, wie sie WallpaperEngine mit Freunden teilen können. Sie können ihre Lieblingshintergrundbilder lokal speichern und sie dann über soziale Software mit Freunden teilen. So teilen Sie WallpaperEngine mit Freunden Antwort: Speichern Sie es lokal und teilen Sie es mit Freunden. 1. Es wird empfohlen, dass Sie Ihre Lieblingshintergründe lokal speichern und sie dann über soziale Software mit Freunden teilen. 2. Sie können es auch über einen Ordner auf den Computer hochladen und dann über die Kreativ-Workshop-Funktion auf dem Computer auf „Teilen“ klicken. 3. Verwenden Sie Wallpaperengine auf dem Computer, öffnen Sie die Optionsleiste der Kreativwerkstatt und suchen Sie

Immer mehr Unternehmen entscheiden sich für den exklusiven Unternehmens-WeChat, der nicht nur die Kommunikation zwischen Unternehmen und Kunden und Partnern erleichtert, sondern auch die Arbeitseffizienz erheblich verbessert. Enterprise WeChat verfügt über umfangreiche Funktionen, unter denen die Bildschirmfreigabefunktion sehr beliebt ist. Während des Meetings können die Teilnehmer durch die gemeinsame Nutzung des Bildschirms Inhalte intuitiver darstellen und effizienter zusammenarbeiten. Wie können Sie Ihren Bildschirm in WeChat Enterprise effizient teilen? Für Benutzer, die es noch nicht wissen, wird Ihnen dieses Tutorial hoffentlich helfen! Wie teile ich den Bildschirm auf WeChat Enterprise? 1. Im blauen Bereich auf der linken Seite der Hauptoberfläche von Enterprise WeChat sehen Sie eine Liste der Funktionen. Nach dem Klicken zum Betreten werden drei Konferenzmodi angezeigt.

Um das ThinkPHP-Projekt auszuführen, müssen Sie: Composer installieren, das Projektverzeichnis aufrufen und http://localhost:8000 aufrufen.

ThinkPHP verfügt über mehrere Versionen, die für verschiedene PHP-Versionen entwickelt wurden. Zu den Hauptversionen gehören 3.2, 5.0, 5.1 und 6.0, während Nebenversionen dazu dienen, Fehler zu beheben und neue Funktionen bereitzustellen. Die neueste stabile Version ist ThinkPHP 6.0.16. Berücksichtigen Sie bei der Auswahl einer Version die PHP-Version, die Funktionsanforderungen und den Community-Support. Für optimale Leistung und Support wird empfohlen, die neueste stabile Version zu verwenden.

Im täglichen Leben und bei der Arbeit müssen wir häufig Dateien und Ordner zwischen verschiedenen Geräten teilen. Das Windows 11-System bietet praktische integrierte Ordnerfreigabefunktionen, die es uns ermöglichen, die benötigten Inhalte einfach und sicher mit anderen im selben Netzwerk zu teilen und gleichzeitig die Privatsphäre persönlicher Dateien zu schützen. Diese Funktion macht die Dateifreigabe einfach und effizient, ohne dass Sie befürchten müssen, dass private Informationen verloren gehen. Durch die Ordnerfreigabefunktion des Windows 11-Systems können wir bequemer zusammenarbeiten, kommunizieren und zusammenarbeiten und so die Arbeitseffizienz und den Lebenskomfort verbessern. Um einen freigegebenen Ordner erfolgreich zu konfigurieren, müssen wir zunächst die folgenden Bedingungen erfüllen: Alle Geräte (die an der Freigabe teilnehmen) sind mit demselben Netzwerk verbunden. Aktivieren Sie die Netzwerkerkennung und konfigurieren Sie die Freigabe. Kennen Sie das Zielgerät

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

Mit der Entwicklung des digitalen Zeitalters sind gemeinsam genutzte Drucker zu einem unverzichtbaren Bestandteil der modernen Büroumgebung geworden. Manchmal kann es jedoch vorkommen, dass der freigegebene Drucker nicht mit dem Drucker verbunden werden kann, was nicht nur die Arbeitseffizienz beeinträchtigt, sondern auch eine Reihe von Problemen verursacht. Ziel dieses Artikels ist es, die Gründe und Lösungen dafür zu untersuchen, warum ein freigegebener Drucker keine Verbindung zum Drucker herstellen kann. Es gibt viele Gründe, warum ein freigegebener Drucker keine Verbindung zum Drucker herstellen kann. Der häufigste Grund sind Netzwerkprobleme. Wenn die Netzwerkverbindung zwischen dem freigegebenen Drucker und dem Drucker instabil oder unterbrochen ist, ist ein normaler Betrieb nicht möglich.

Leistungsvergleich von Laravel- und ThinkPHP-Frameworks: ThinkPHP schneidet im Allgemeinen besser ab als Laravel und konzentriert sich auf Optimierung und Caching. Laravel schneidet gut ab, aber für komplexe Anwendungen ist ThinkPHP möglicherweise besser geeignet.
