NoLocalSettings.php tries to detect whether the installer has been
started or not. But this detection has been broken since I4cf237d when a
change was made to stop setting the session name when NO_SESSION is
defined, causing NoLocalSettings.php to be looking at a different
session-cookie than is actually being used by the installer.
The complete fix is twofold:
* Have WebInstaller::startSession() call session_name()
* Have NoLocalSettings.php not call session_name() when PHP's
session.auto_start configuration setting is set.
Change-Id: I618d11df902b5d1f70e175bc94137621e9195c2f
if ( !function_exists( 'session_name' ) ) {
$installerStarted = false;
} else {
- session_name( 'mw_installer_session' );
+ if ( !wfIniGetBool( 'session.auto_start' ) ) {
+ session_name( 'mw_installer_session' );
+ }
$oldReporting = error_reporting( E_ALL & ~E_NOTICE );
$success = session_start();
error_reporting( $oldReporting );
$this->phpErrors = array();
set_error_handler( array( $this, 'errorHandler' ) );
try {
+ session_name( 'mw_installer_session' );
session_start();
} catch ( Exception $e ) {
restore_error_handler();