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" ?>