Okay folks, here's a little script for assisting wiki updates. It does not yet fix the database permissions, since I'm not yet shure how I like to pass the superuser login/passwd. (suggestions welcomed)
cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service - http://www.metux.de/ --------------------------------------------------------------------- Please visit the OpenSource QM Taskforce: http://wiki.metux.de/public/OpenSource_QM_Taskforce Patches / Fixes for a lot dozens of packages in dozens of versions: http://patches.metux.de/ ---------------------------------------------------------------------
#!/usr/bin/php <?php // // Copyright 2006, Enrico Weigelt, metux IT service <[EMAIL PROTECTED]> // // This script may be redistributed under the terms of the GPL. // $WEBAPP="mediawiki"; $DBSUPERUSER_NAME="root"; $DBSUPERUSER_PASSWORD="pemnj92"; if (!$_SERVER{'argv'}[2]) die ("update-wiki: <hostname> <version>"); $HOSTNAME=$_SERVER{'argv'}[1]; $VERSION=$_SERVER{'argv'}[2]; $WWWROOT="/var/www/$HOSTNAME/htdocs"; $MNTDIR="$WWWROOT/maintenance/"; $LOCALSETTINGS="$WWWROOT/LocalSettings.php"; $ADMINSETTINGS="$WWWROOT/AdminSettings.php"; if ([EMAIL PROTECTED]($LOCALSETTINGS,"r")) die ( "missing LocalSettings.php - you have to configure it first" ); if ([EMAIL PROTECTED]($ADMINSETTINGS,"r")) { echo "missing AdminSettings.php ... creating it\n"; define('MEDIAWIKI',1); require_once($LOCALSETTINGS); $fp_in=fopen($LOCALSETTINGS,"r"); $fp_out=fopen($ADMINSETTINGS,"w"); while (!feof($fp_in)) { $line=fgets($fp_in,4096); if (trim($line)=='?>') { fputs($fp_out,'$wgDBadminuser="'.$wgDBuser."\";\n"); fputs($fp_out,'$wgDBadminpassword="'.$wgDBpassword."\";\n"); fputs($fp_out,"\n"); fputs($fp_out,$line); while (!feof($fp_in)) fputs($fp_out,fgets($fp_in,4096)); $gotend = true; } else fputs($fp_out,$line); } if (!$gotend) { fputs($fp_out,'$wgDBadminuser="'.$wgDBuser."\";\n"); fputs($fp_out,'$wgDBadminpassword="'.$wgDBpassword."\";\n"); } fclose($fp_in); fclose($fp_out); } print "Upgrading the webapp code (->webapp-config)\n"; if (passthru("webapp-config -U -h $HOSTNAME $WEBAPP $VERSION",$ret)||($ret==0)) print "Okay\n"; else die ( "webapp-config failed: $ret\n"); print "Now calling the update script\n"; print "If it cannot do certain structure changes (ie. creating tables),\n"; print "you have to give full db access to the wiki user\n"; print "\n"; if (passthru("cd $MNTDIR && php update.php",$res)||($res==0)) print "OKAY\n"; else die("ERROR\n");