L'utilisateur est connecté à PHP site Web> Je redémarre Apache> L'utilisateur doit se reconnecter.
Comment empêcher cela? (Je ne veux pas que l'utilisateur ait besoin de se connecter à nouveau)
Le stockage d'un jeton de session dans un autre emplacement en tant que sauvegarde éviterait ce problème. Vous pouvez toujours conserver vos informations principales dans $_SESSION
, mais conserver un jeton de sauvegarde dans:
Vous pouvez trouver de l’aide dans cette question de StackOverflow: bonne pratique pour les délais de session et la connexion persistante en php .
Vos données de session ne doivent pas être perdues simplement parce qu'Apache est arrêté ou redémarré, sauf si les données de la session sont stockées en mémoire et non sauvegardées sur le disque (par le système de fichiers ou la base de données). Sinon, vous pourriez redémarrer tout le serveur et la session persisterait. Les données de session sont conçues pour être stockées à long terme. La seule fois où la session est perdue est si:
Le SID est perdu. Les données de session existent toujours côté serveur, mais le client ne peut pas récupérer le SID et ne peut donc pas relancer la même session. Cela peut se produire si le cookie SID expire (s'il s'agit d'un cookie) ou si les liens de session sont perdus (si le SID est un paramètre d'URL) ou si le SID est non défini côté serveur ou modifié sans que le client en soit averti.
Les données de session sont supprimées côté serveur. Cela se produit généralement lorsque le PHP Session Garbage Collector est exécuté et voit que le fichier de session est plus ancien que session.gc_maxlifetime (ce qui correspond à 24 minutes par défaut). Sinon, cela peut arriver si l'application explicitement supprime la session . Sur certains serveurs, l'administrateur peut également avoir configuré une tâche cron pour nettoyer régulièrement les anciennes données de session.
Rendu possible en utilisant le bon argument avec Apache:
Apache2ctl -k graceful
Apache va redémarrer sans perdre les sessions en cours.