By default, Joomla has a 15 minute session time for logged in users, meaning if a user goes inactive for more than 15 minutes, they are automatically logged out and need to enter their credentials again. But, sometimes you need longer session times, for instance, when you are developing a site and don’t want to be logging in over and over. Or, maybe you have some very long forms for logged in users to complete and you don’t want their session expiring before they can hit the submit button.
So, let’s take a look at changing the session time in the backend of Joomla.
- Login to the backend of Joomla with a super administrator account.
- Click to open the System menu item.
- Select Global Configuration from the dropdown.
- Once the Global Configuration is open, click on the System tab.
- Scroll down the page until you see the Session Settings section.
There will be three fields:
- Session Handler – the way the sessions are handled by Joomla
- Session Lifetime – how long a user stays logged in while being inactive
- Shared Sessions – the ability to make the login work for both frontend and backend simultaneously
- To make the session time longer, simply change the value in the Session Lifetime field to the desired length in minutes. For example, maybe you want to make the session an hour and half, then you would enter “90” for the value.
- After you have changed the value, then click Save and Close on the Global Configuration.
That’s it! You’ve now changed the session time for your users.
Please note, that this session time is the same for both frontend and backend users.
In case you are wanting to dig a little deeper in the session settings, here’s a little more information about the Session Handler dropdown.
The Session Handler dropdown gives you three options:
- Database – saves the browser cookie in a table in the Joomla database
- PHP – stores the browser cookie in a php file on the server
- Memcached (Experimental) – uses an open source memory object caching system
By default, Joomla is set to Database to track the user that is logged in for non-activity. If you aren’t able to get to your php settings or server files, we recommend you stick to the default setting here.
If your database is on another server or has a slow connection, changing to a PHP handling method might be a better choice for you. PHP handling writes to a file directly on the web server and has more advanced session handling.
You need to make sure your host PHP settings will allow this before trying it, or you may find yourself locked out of your site. If you do get locked out when you switch to PHP handling, you will need FTP access in order to modify the configuration.php file. You will need to look for the line that says public session _ handler = "none” and change it back to public session _ handler = "Database" again. Now you should be able to log in again and you will see the Session Handler dropdown is back to Database.
The last option of Memcached is marked “Experimental” still, so we recommend you do not use this method on live sites at this point in time.
Shared Sessions is set to No by default, meaning you will need to login to the backend and the frontend and those are handled separately. If you want the same session to work on the frontend and backend, you will first need to hop over to the Server tab in the Global Configuration and make sure that your Force HTTPS is set to either None or Entire Site, but not Administrator Only. If you need to have the Administrator Only setting for this field, then you will need to leave Shared Sessions set to No.
If your Force HTTPS is set to None or Entire Site (which is the preferred setting in most scenarios), then you can go back over to the System tab, scroll down to the Session Settings, and change Shared Sessions to Yes.
After you make those changes, don’t forget to click Save or Save & Close in the Global Configuration. Now you’ve changed your session handling to work for frontend and backend.
We hope this tutorial helps you with your Joomla Session! And, for full Joomla installs and setups, see our extensive video course library for Joomla.