Hem >> Bloggar >> Teknikbloggen >> Öka session timeout i php och apache under Ubuntu

Öka session timeout i php och apache under Ubuntu

  • Posted on: 4 May 2015
  • By: Pontus

Som standard är timeouten för sessions i en standard Ubuntu installation på 24 minuter. Det fungerar för det mesta men ibland så kan det vara för lite, så för att slippa komma till inloggningen igen när man har jobbat med ett formulär eller något annat i över 24 mintuer så kan man utöka den tiden.

Varifrån tiden 24 minuter kommer ifrån är en fråga som många har undrat över men jag har inte lyckats hitta något svar. Fast den tiden är en rätt bra kompromiss mellan säkerheten och användbarheten. För lång tid så ökar risken för session hijacking, för kort tid så hinner man inte slutföra och klicka på en annan länk. 

För att utöka tiden så öppnar vi php.ini som ligger under /etc/php5/apache2/

joe /etc/php5/apache2/php.ini

Därefter letar vi upp session.gc_maxlifetime som bör ligga runt rad 1437. Som standard är värdet 1440 sekunder, vilket motsvarar (1440/60=24 minuter). Det värdet ökas till så länge vi vill att sessionerna ska vara aktiva. Observera att det här gäller standard sessioner i php som blir inaktiva om man stänger webbläsarfönstret, om man vill att sessionen fortfarande ska vara aktiv även nästa gång man öppnar webbläsaren så krävs det en coockie lösning.

Här ändrar vi tiden till 1 timme (60*60=3600 sekunder)

session.gc_maxlifetime = 3600

För 6 timmar blir värdet istället (60*60*6= 21600 sekunder) 

session.gc_maxlifetime = 21600

Spara och stäng filen, därefter måste man starta om apache för att ändringarna ska börja gälla.

sudo service apache2 restart