diff --git a/phpini/edit_session.cgi b/phpini/edit_session.cgi index b138568e0..150504aeb 100755 --- a/phpini/edit_session.cgi +++ b/phpini/edit_session.cgi @@ -18,7 +18,8 @@ print &ui_table_row($text{'session_handler'}, &find_value("session.save_handler", $conf), [ [ "files", $text{'session_files'} ], [ "mm", $text{'session_mm'} ], - [ "users", $text{'session_users'} ] ])); + [ "users", $text{'session_users'} ], + [ "redis", $text{'session_redis'} ] ])); # Where to save session files print &ui_table_row($text{'session_path'}, diff --git a/phpini/lang/en b/phpini/lang/en index f52ed4b78..193d05e94 100644 --- a/phpini/lang/en +++ b/phpini/lang/en @@ -70,6 +70,7 @@ session_handler=Session storage mechanism session_files=Files session_mm=In memory session_users=User defined +session_files=Redis session_path=Directory for session files session_cookies=Allow use of cookies for session tracking? session_only_cookies=Always use cookies for session tracking? @@ -79,6 +80,7 @@ session_maxlife=Maximum session lifetime session_epath=Missing or invalid directory for session files session_elife=Missing or invalid cookie lifetime session_emaxlife=Missing or invalid maximum session lifetime +session_eredis=Missing or disabled redis extension safe_title=Safe Mode Options safe_header=Safe file access mode options diff --git a/phpini/save_session.cgi b/phpini/save_session.cgi index cd1c3a5fd..d5a3e2cf9 100755 --- a/phpini/save_session.cgi +++ b/phpini/save_session.cgi @@ -16,7 +16,18 @@ if ($in{"session.save_path_def"}) { &save_directive($conf, "session.save_path", undef); } else { - -d $in{"session.save_path"} || &error($text{'session_epath'}); + if($in{"session.save_handler"} == "redis") { + my @hasRedis = `php -m | grep redis` == "redis"; + if(!@hasRedis) { + &error($text{'session_eredis'}); + } + } + else { + # file path must not be checked with other handlers (e.g. redis) + -d $in{"session.save_path"} || &error($text{'session_epath'}); + } + + &save_directive($conf, "session.save_path", $in{"session.save_path"}); }