un server interno serve due applicazioni diverse per utenti tramite la nostra LAN:PHP non memorizzare i dati in sessioni per alcuni utenti
https://10.0.0.100/app1/
https://10.0.0.100/app2/
Entrambe le applicazioni sono serviti dallo stesso file di configurazione di Apache, sono solo in directory separate sotto public_html
. Entrambe le applicazioni utilizzano sessioni PHP, ma entrambi prefisso al variabili $_SESSION
con i loro spazi dei nomi:
$_SESSION['app1_favorite_colour'] = 'Yellow';
$_SESSION['app2_quest'] = 'Agghhh!';
Nonostante questo, utenti connessi in app1
non stanno avendo il loro app2_
dati di sessione scritti nel file di sessione sul disco. Considerate page1.php
:
<?php
/**
* App2
* /page1.php
*/
session_start();
$_SESSION['apps_been_here'] = 'Yes!';
echo "<a href='page2.php'>Clicky</a>";
?>
Poi, il page2.php
:
<?php
/**
* App2
* /page2.php
*/
session_start();
echo "Have you been here: {$_SESSION['apps_been_here']}";
Questo fa non stampa "sì" per l'utente se l'utente è connesso a app1, come pure! Tuttavia, gli utenti che non utilizzano app1 fare vedere "sì" su page2.php
. Indagando, ho aperto i file di sessione in /var/lib/php/session/
. Vedo solo variabili in quel file che iniziano con il prefisso app1_
e nessuno che inizia con app2_
per gli utenti che hanno eseguito l'accesso all'app1. Gli altri utenti che non hanno effettuato l'accesso all'app1 do hanno variabili che iniziano con app2_
nei relativi file di sessione!
Ho verificato con lsof
che i file non sono bloccati e ho confermato che non ci sono finestre aperte del browser in esecuzione nel browser. app1
pagine nel browser. Perché le variabili di sessione App2 non possono essere archiviate nel file di sessione? C'è abbondanza di spazio libero su disco e memoria e il carico della CPU è inferiore a 0,1 (come misurato da uptime
). Il problema si verifica per più utenti in più browser (Firefox, Chrome). Cancellare i cookie e la cache del browser non aiuta.
Cosa hai fatto nel login App1? – PasteBT