Last modified: 2007-06-15 00:43:44 UTC
Perform an install using a single codebase with symlinks to multiple install directories, each with separate LocalSettings.php, AdminSettings.php, and images and extensions directories as described here: http://meta.wikimedia.org/wiki/MediaWiki_FAQ#Is_it_possible_to_install_more_than_one_wiki_.28MediaWiki.29_on_a_server.3F_How.3F When performing an update to a new version, the maintenance/update.php script fails due to assumption that LocalSettings.php and AdminSettings.php are in the same root MediaWiki path as the update.php script. The following is a unified diff of the changes that need to be performed to fix the file. This fix adds an additional --aconf command line option to specify the location of the AdminSettings.php file. Combined with the use of the existing --conf option, the update.php script will complete successfully. --- commandLine.inc.original 2007-02-21 13:31:07.000000000 -0800 +++ commandLine.inc.new 2007-02-21 13:36:54.000000000 -0800 @@ -34,7 +34,10 @@ if ( !isset( $optionsWithArgs ) ) { $optionsWithArgs = array(); } -$optionsWithArgs[] = 'conf'; # For specifying the location of LocalSettings.php +# For specifying the location of: +# LocalSettings.php (conf) +# AdminSettings.php (aconf) +$optionsWithArgs = array( 'conf', 'aconf' ); $self = array_shift( $argv ); $IP = realpath( dirname( __FILE__ ) . '/..' ); @@ -169,6 +172,11 @@ } else { $settingsFile = "$IP/LocalSettings.php"; } + if ( isset( $options['aconf'] ) ) { + $aSettingsFile = $options['aconf']; + } else { + $aSettingsFile = "$IP/AdminSettings.php"; + } if ( ! is_readable( $settingsFile ) ) { print "A copy of your installation's LocalSettings.php\n" . @@ -182,9 +190,9 @@ require_once( $settingsFile ); ini_set( 'include_path', ".$sep$IP$sep$IP/includes$sep$IP/languages$sep$IP/maintenance" ); - if ( is_readable( $IP.'/AdminSettings.php' ) ) { - require_once( $IP.'/AdminSettings.php' ); - } + if ( is_readable( $aSettingsFile ) ) { + require_once( $aSettingsFile ); + } } # Turn off output buffering again, it might have been turned on in the settings files
Created attachment 3255 [details] Patches maintenance/update.php to add --aconf option
Patch overwrites $optionsWithArguments, would break existing scripts.
'aconf' option added in r22845.
The --aconf option appears to be redundant to --conf; I would recommend backing this out and simply fixing it.
FYI - I originally thought it was better to introduce a new option variable as some installs could possibly assume that --conf would only specify a location for LocalSettings.php and depend on AdminSettings.php being in the old location. It's your call which way is better. Both work for me.