5.7 Sessions on a Multi Server Environment
We're migrating all of our c5 sites to a multi server environment behind a load balancer.
It works great for our sites running 5.6.x.
However, 5.7 handles sessions differently and isnt working in the multi server environment.
It looks like there is a is_dir(session_save_path) call somewhere. This works fine on standalone servers, but on mulit-server environments when session save path is a memcached session, it fails saying:
is_dir(): Unable to find the wrapper "tcp" - did you forget to enable it when you configured PHP?
It's trying to treat it's session saving as a file, which will fail in a multi-server environment. We really want it to use native PHP functionality for that (or store a file on it's local file system inside it's DocumentRoot, so that all servers can share it).
Is there a setting for this on how to handle sessions?
We found this in concrete/config/concrete.php around line 587
'session' => array( 'name' => 'CONCRETE5', 'handler' => 'file', 'max_lifetime' => 7200, 'cookie' => array( 'cookie_path' => false, // set a specific path here if you know it, otherwise it'll default to relative 'cookie_lifetime' => 0, 'cookie_domain' => false, 'cookie_secure' => false, 'cookie_httponly' => false ) ),
Is that what we need to change? If so, what do we change it to?
Also, will this break any attempts to upgrade to a newer version of 5.7.x down the road?
Would this get overridden when we update the system to the latest version?
Do you know if it is possible to do memcached sessions instead?
Just trying to see what our options are.
Also, are there any downsides to database sessions over the default session handling?