Tweede hulp bij wiki's
Naar navigatie springen
Naar zoeken springen
serverfout 500
wiki doet niets meer; serverfout 500
- Als een wiki 'niets' meer doet is er meestal iets mis met LocalSettings.php, een puntkomma vergeten kan al voldoende zijn.
Backup wiki-data
- phpMyAdmin | database | Export
- LocalSettings.php
- images/*/*
upgrade mediawiki
Cruciaal is het draaien van update.php in de ./maintenance map
- SemanticMediawiki: Special:SMWAdmin
- FlaggedRevisions: update.php na opnemen van
#require( "$IP/extensions/FlaggedRevs/FlaggedRevs.php" );
Foutmelding
Na (gedeeltelijke) installatie van Semantic Mediawiki wordt onderstaande fout gegeven bij het bekijken van de hoofdpagina:
MediaWiki internal error. Exception caught inside exception handler
Remedie: Ga naar Special:SMWAdmin en gebruik de knop Initialize or upgrade tables
changecollation.php
Om de collaties van alle tabellen te corrigeren (ze staan vaak op latin1_swedish_ci kun je onderstaand scriptje gebruiken.
<?php
$mydbname = 'databasename';
$myhost = 'localhost';
$myuser = 'username';
$mypass = 'password';
$mycollation = 'utf8_general_ci';
$connection = mysql_connect( $myhost, $myuser, $mypass )
or die( "cannot connect to server at $myhost" );
$db = mysql_select_db( $mydbname )
or die( "cannot select database $mydbname" );
$result = mysql_query( 'SHOW TABLES' );
while( $tables = mysql_fetch_array( $result ) ) {
foreach ( $tables as $key => $value ) {
mysql_query( "ALTER TABLE $value COLLATE $mycollation" );
}
}
echo "The collation of database $mydbname was changed to $mycollation.";
?>
changeprefix.php
Bij importeren/exporteren van mediawiki-databases kun het nuttig/nodig zijn om alle prefixen van de tabellen te veranderen:
<?php
$mydbname = 'databasename';
$myhost = 'localhost';
$myuser = 'username';
$mypass = 'password';
$oldprefix = 'old_';
$newprefix = 'new_';
function replace_prefix( $s, $oldprefix, $newprefix ) {
if( $oldprefix=="" )
return $newprefix . $s;
$pos = strpos( $s, $oldprefix );
if( $pos === false ) {
$s = "";
} else {
$s = substr( $s, $pos + strlen($oldprefix) );
$s = $newprefix . $s;
}
return $s;
}
$connection = mysql_connect( $myhost, $myuser, $mypass )
or die( "cannot connect to server at $myhost" );
$db = mysql_select_db( $mydbname )
or die( "cannot select database $mydbname" );
$sql = "SHOW TABLES FROM $mydbname";
$qresult = mysql_query( $sql );
if ( !$qresult )
{
echo "DB Error, could not list tables \n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while ( $row = mysql_fetch_row( $qresult ) )
{
$oldname = $row[0];
$newname = replace_prefix( $oldname, $oldprefix, $newprefix );
if( $newname != "" )
{
$sql = "RENAME TABLE $oldname TO $newname";
$result = mysql_query( $sql );
if (!$result) {
$r = "error";
} else {
$r = "OK";
}
echo "Changing $oldname -> $newname : $r\n";
} else {
echo "**** $oldname: not found **** \n";
}
mysql_free_result($result);
}
mysql_free_result($qresult);
echo "Done.\n"
?>