Maison  >  Article  >  développement back-end  >  Comment modifier la configuration de session en php

Comment modifier la configuration de session en php

PHPz
PHPzoriginal
2023-04-11 09:16:14714parcourir

La session est un mécanisme très couramment utilisé en PHP. Il enregistre les données générées par l'utilisateur lors de la visite du site Web sur le serveur afin que les données puissent être utilisées lors d'opérations ultérieures. Par exemple, sur un site Web d'achat, une fois que l'utilisateur a ajouté des articles au panier, il peut utiliser les données du panier enregistrées dans la session sur la page de paiement.

Cependant, en PHP, la Session est stockée sur le serveur sous forme de fichier par défaut. Bien que cette méthode soit simple, elle présente certains problèmes potentiels. Par exemple, si le site Web reçoit un nombre élevé de visites, un grand nombre de fichiers de session seront générés sur le serveur, ce qui peut facilement entraîner des problèmes de performances du serveur. De plus, puisque les sessions sont stockées localement sur le serveur, elles seront également affectées. par des problèmes tels que des pannes de serveur et des fichiers de session supprimés.

Par conséquent, afin d'améliorer la stabilité et les performances de Session, il nous est nécessaire d'apporter quelques ajustements à Session. Ci-dessous, nous prenons la version PHP 7.2 comme exemple pour présenter comment modifier la configuration PHP de Session.

  1. Modifiez le paramètre session.save_handler

En PHP, session.save_handler est le nom du processeur de stockage de session. Vous pouvez ajuster la façon dont la session est stockée en modifiant ce paramètre.

Pour les sites Web à fort trafic, nous pouvons définir session.save_handler sur redis ou memcached pour stocker la session dans le cache. Cela peut réduire considérablement le nombre de fichiers de session sur le serveur et améliorer les performances du serveur.

L'exemple de code suivant montre comment stocker une session dans Redis :

session_save_path('tcp://127.0.0.1:6379?database=0');
ini_set('session.save_handler', 'redis');
  1. Modifier les paramètres session.gc_probability et session.gc_divisor

En PHP, session.gc_probability et session.gc_divisor sont des paramètres du mécanisme de récupération de place de session. . Ils sont utilisés pour contrôler la fréquence de recyclage des sessions.

Par défaut, la valeur de session.gc_probability est 1, ce qui signifie que chaque requête a une certaine probabilité de déclencher le recyclage de session et la valeur de session.gc_divisor est 100, ce qui signifie que chaque requête a une probabilité de déclenchement de 1 % ; il. Session de recyclage. Cela rendra le garbage collection très fréquent et affectera les performances du serveur.

Par conséquent, nous pouvons ajuster de manière appropriée les valeurs de session.gc_probability et session.gc_divisor pour réduire le nombre de déclencheurs du mécanisme de recyclage de session.

L'exemple de code suivant montre comment définir les valeurs de session.gc_probability et session.gc_divisor sur des valeurs plus grandes pour réduire le nombre de déclencheurs du mécanisme de recyclage :

ini_set('session.gc_probability', 50);
ini_set('session.gc_divisor', 1000);
  1. Modifiez le paramètre session.gc_maxlifetime

En PHP, session .gc_maxlifetime est le paramètre du cycle de vie de la session. Il indique la durée de stockage maximale des fichiers de session qui dépassent cette durée seront automatiquement supprimés.

Par défaut, la valeur de session.gc_maxlifetime est de 1440 secondes (24 minutes), ce qui signifie que le fichier de session ne peut survivre que 24 minutes. Pour certaines applications qui doivent stocker la session pendant une longue période, cette durée peut être trop courte, entraînant la perte de la session.

Par conséquent, nous pouvons prolonger de manière appropriée la durée de survie de la session en modifiant le paramètre session.gc_maxlifetime.

L'exemple de code suivant montre comment définir la valeur de session.gc_maxlifetime sur 3600 secondes (1 heure) :

ini_set('session.gc_maxlifetime', 3600);
  1. Modifiez le paramètre session.cookie_lifetime

En PHP, session.cookie_lifetime est le paramètre de cycle de vie du Cookie de session. Il représente la durée de survie de l'ID de session côté serveur dans le cookie côté utilisateur. Une fois ce délai expiré, l'utilisateur doit régénérer un nouvel ID de session.

Par défaut, la valeur de session.cookie_lifetime est 0, ce qui signifie que le cookie de session expirera après la fermeture du navigateur par l'utilisateur. De cette façon, dans certaines applications qui doivent stocker la session pendant une longue période, l'utilisateur doit se reconnecter après avoir fermé le navigateur.

Par conséquent, nous pouvons prolonger la durée de survie de Session Cookie et maximiser le rôle de Session en modifiant le paramètre session.cookie_lifetime.

L'exemple de code suivant montre comment définir la valeur de session.cookie_lifetime sur 3600 secondes (1 heure) :

ini_set('session.cookie_lifetime', 3600);

Résumé

En ajustant la configuration PHP de Session, nous pouvons optimiser et renforcer la session, améliorer les performances du serveur et stabilité. Les configurations PHP présentées ci-dessus peuvent être utilisées comme référence et les développeurs peuvent les ajuster en fonction de leurs besoins réels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn