Update Mediawiki ToDo
Hier eine kurze Auflistung was beim Update alles gemacht werden muss:
Backup der wikidb
mysqldump --databases wikidb -u root -p > /root/wikidb.dump
Kurzes Update
hier wird das Update einfach über die bestehende Installation gebügelt.
cd /usr/src/
wget http://download.wikimedia.org/mediawiki/1.22/mediawiki-1.22.1.tar.gz
tar -xzvf mediawiki-1.22.1.tar.gz -C /srv/httpd/vhosts/www.laub-home.de/htdocs --strip-components=1
cd /srv/httpd/vhosts/www.laub-home.de/htdocs/
chown -R root.root *
chown -R www-data.www-data images
chmod -R 755 images
cd maintenance
php update.php
DONE!
Entpacken des neuen Wiki
cd /usr/src/
wget http://download.wikimedia.org/mediawiki/1.19/mediawiki-1.19.0.tar.gz
mkdir /srv/httpd/vhosts/www.laub-home.de/htdocs1
tar -xzvf mediawiki-1.19.0.tar.gz -C /srv/httpd/vhosts/www.laub-home.de/htdocs1 --strip-components=1
cd /srv/httpd/vhosts/www.laub-home.de/
cp -p htdocs/LocalSettings.php htdocs1/
cp -rp htdocs/images htdocs1/
chown -R root.root htdocs1
chown -R www-data.www-data htdocs1/images
chmod -R 755 htdocs1/images
Extensions aktualisieren
Hier die aktuellen Snapshots für die verwendete Mediawiki Version im Verzeichnis htdocs1/extensions
abspeichern und entpacken.
cd htdocs1/extensions/
wget http://www.wikicode.org/Google1.zip
unzip Google1.zip
rm Google1.zip
cp -rp ../../htdocs/extensions/GoogleAdSense .
cp -rp ../../htdocs/extensions/googleAnalytics/ .
cp -rp ../../htdocs/extensions/Lockdown/ .
cp -rp ../../htdocs/extensions/PdfExport/ .
cp -rp ../../htdocs/extensions/CategoryTagCloud .
cp -rp ../../htdocs/extensions/ContributionCredits .
cp -rp ../../htdocs/extensions/Google1 .
cp -rp ../../htdocs/extensions/LinkAttributes .
cp -rp ../../htdocs/extensions/MobileFrontend .
cp -rp ../../htdocs/extensions/OpenSearchXml .
cp -rp ../../htdocs/extensions/SelectCategory .
cp -rp ../../htdocs/extensions/Update .
cp -rp ../../htdocs/extensions/WikiCategoryTagCloud .
svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SimpleSecurity/
Adsense Menü aufklappen
htdocs1/skins/Vector/collapsibleNav.js
--- near Line 200
// In the case that we are not showing the new version, let's show the languages by default if ( state == 'true' || id == "p-googleadsense" || ( state == null && i < 1 ) || ( state == null && version == 1 && id == 'p-lang' ) ) {
Update PHP Skript
cd /srv/httpd/vhosts/www.laub-home.de/htdocs1/maintenance/ php update.php
Anpassen der Sidebar
!!!Nicht mehr nötig
http://wiki.laub-home.de/index.php/MediaWiki:Sidebar
* navigation ** mainpage|mainpage ** LookOut - Webcam Overview Tool|Lookout Project ** http://lookout.laub-home.de|//Lookout * HowTo's ** Linux|Linux HowTo's ** Windows|Windows HowTo's ** MacOS|MacOS HowTo's ** VMware|VMware HowTo's ** MediaWiki|MediaWiki HowTo's ** Sonstiges|Sonstige HowTo's * SEARCH * Quicklinks ** http://wiki.laub-home.de/index.php/Spezial:Suche?search=WorkInProgress&go=Seite|Unfertige HowTo's ** recentchanges-url|recentchanges ** randompage-url|randompage ** Spezial:Pdfprint|PDF-Druck ** Spezial:Dateien|Dateien ** Spezial:Alle_Seiten|Alle Seiten
Anpassen des WikiEditor
http://wiki.laub-home.de/index.php/MediaWiki:Common.js
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
var button = {
"imageFile": "/images/buttons/Button_pre.png",
"speedTip": "<pre>",
"tagOpen": "<pre>",
"tagClose": "</pre>",
"sampleText": "pre text"
};
mwCustomEditButtons.push(button);
var button1 = {
"imageFile": "/images/buttons/Button_Br.png",
"speedTip": "<br>",
"tagOpen": "<br>",
"tagClose": "",
"sampleText": ""
};
mwCustomEditButtons.push(button1);
var button2 = {
"imageFile": "/images/buttons/Button_code.png",
"speedTip": "<code>",
"tagOpen": "<code>",
"tagClose": "</code>",
"sampleText": "code text"
};
mwCustomEditButtons.push(button2);
var buttonsource = {
"imageFile": "/images/buttons/Button_Source.png",
"speedTip": "<syntaxhighlight>",
"tagOpen": "<syntaxhighlight lang=bash>",
"tagClose": "</syntaxhighlight>",
"sampleText": "source text"
};
mwCustomEditButtons.push(buttonsource);
var button4 = {
"imageFile": "/images/buttons/Button_headline2.png",
"speedTip": "==",
"tagOpen": "==",
"tagClose": "==",
"sampleText": "Ü2 text"
};
mwCustomEditButtons.push(button4);
var button5 = {
"imageFile": "/images/buttons/Button_headline3.png",
"speedTip": "===",
"tagOpen": "===",
"tagClose": "===",
"sampleText": "Ü3 text"
};
mwCustomEditButtons.push(button5);
var button6 = {
"imageFile": "/images/buttons/Button_strike.png",
"speedTip": "<strike>",
"tagOpen": "<strike>",
"tagClose": "</strike>",
"sampleText": "strike text"
};
mwCustomEditButtons.push(button6);
// WikiEditor Buttons
var customizeToolbar = function() {
// FIRST
$('#wpTextbox1').wikiEditor('addToToolbar', {
section: 'advanced',
group: 'format',
tools: {
"brtext": {
label: '<br>',
type: 'button',
icon: '/images/buttons/Button_Br.png',
action: {
type: 'replace',
options: {
pre: "<br>",
}
}
}
}
});
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'group': 'insert',
'tools': {
'pretext': {
label: '<pre>',
type: 'button',
icon: '/images/buttons/Button_pre.png',
action: {
type: 'encapsulate',
options: {
pre: "<pre>",
periMsg: "insert pre text here",
post: "</pre>"
}
}
}
}
});
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'group': 'insert',
'tools': {
'sourcetext': {
label: '<syntaxhighlight>',
type: 'button',
icon: '/images/buttons/Button_Source.png',
action: {
type: 'encapsulate',
options: {
pre: "<syntaxhighlight lang=bash>",
periMsg: "insert source text here",
post: "</syntaxhighlight>"
}
}
}
}
});
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'advanced',
'group': 'format',
'tools': {
'codetext': {
label: '<code>',
type: 'button',
icon: '/images/buttons/Button_code.png',
action: {
type: 'encapsulate',
options: {
pre: "<code>",
periMsg: "insert code text here",
post: "</code>"
}
}
}
}
});
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'advanced',
'group': 'format',
'tools': {
'hline': {
label: 'Horizontal line',
type: 'button',
icon: '/images/buttons/Button_hr.png',
action: {
type: 'encapsulate',
options: {
pre: "----",
ownline: true
}
}
}
}
});
$('#wpTextbox1').wikiEditor('addToToolbar', {
section: 'advanced',
group: 'format',
tools: {
"strikethrough": {
label: 'Strike',
type: 'button',
icon: '/images/buttons/Button_strike.png',
action: {
type: 'encapsulate',
options: {
pre: "<s>",
post: "</s>"
}
}
}
}
});
// LAST
};
/* Check if we are in edit mode and the required modules are available and then customize the toolbar */
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
mw.loader.using( 'user.options', function () {
if ( mw.user.options.get('usebetatoolbar') ) {
mw.loader.using( 'ext.wikiEditor.toolbar', function () {
$(document).ready( customizeToolbar );
} );
}
} );
}
Maintenance Skript Memory anpassen
maintenance/Maintenance.php
'memory-limit', 'max'
nach
'memory-limit', 'default'
public function memoryLimit() {
$limit = $this->getOption( 'memory-limit', 'default' );
$limit = trim( $limit, "\" '" ); // trim quotes in case someone misunderstood
return $limit;
}
Tests
- Login
- Bearbeiten
- Test auf SimpleSecurity
- Test auf Lockdown
- Editor Test
- PDFDrucken testen
- Durch ein paar Seiten klicken
- Schauen ob die Rahmen beim Geshi drumherum sind
Probleme
Wiki Editor hat keine Eigenen Icons mehrBild Thumbs werden nicht erstellt- PdfExport Extension nach Update auf 1.21.0 http://www.mediawiki.org/wiki/Extension_talk:Pdf_Export#Error_after_upgrade_to_MediaWiki_1.21.0_28039
- Update Extension selbes Problem wie PdfExport! Einfach
wfLoadExtensionMessages()
mitwfMessage()
in allen PHP Dateien ersetzten
Debugging
Nach dem Update kommt es in zusammen Spiel mit der PHP open_base_dir Restriktion zu folgender Fehlermeldung:
Error creating thumbnail: Unable to save thumbnail to destination Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden
Seit neueren Mediawiki Versionen (1.20.3 auf jeden Fall schon) Kann dieser Fehler damit behoben werden die Variable $wgTmpDirectory
in der LocalSettings.php
zu setzten. Ich habe das Ganze in den image
Folder gelegt und hier ein tmp
Folder angelegt:
mkdir /srv/httpd/vhosts/wiki.laub-home.de/htdocs/images/tmp/
chown www-data.www-data /srv/httpd/vhosts/wiki.laub-home.de/htdocs/images/tmp/
LocalSettings.php
# Temp Dir für Bildvorschau setzten
$wgTmpDirectory = "/srv/httpd/vhosts/wiki.laub-home.de/htdocs/images/tmp/";
!!!Achtung, die Lösung ist veraltet. Es handet sich hier um folgenden Bug: https://bugzilla.wikimedia.org/show_bug.cgi?id=36475
Und wird folgendermaßen gefixt:
includes/GlobalFunctions.php
--- includes/GlobalFunctions.php.orig 2012-05-03 12:11:55.045022532 +0200 +++ includes/GlobalFunctions.php 2012-05-03 12:17:02.499062078 +0200 @@ -2491,7 +2491,16 @@ } } + if (ini_get('upload_tmp_dir')!==false) { + $tmp = ini_get('upload_tmp_dir'); + if( $tmp && file_exists( $tmp ) && is_dir( $tmp ) && is_writable( $tmp ) ) { + return $tmp; + } } if( function_exists( 'sys_get_temp_dir' ) ) { - return sys_get_temp_dir(); + $tmp = sys_get_temp_dir(); + if( $tmp && file_exists( $tmp ) && is_dir( $tmp ) && is_writable( $tmp ) ) { + return $tmp; + } + } # Usual defaults return wfIsWindows() ? 'C:\Windows\Temp' : '/tmp';
Die Funktion sollte dann so aussehen:
function wfTempDir() {
foreach( array( 'TMPDIR', 'TMP', 'TEMP' ) as $var ) {
$tmp = getenv( $var );
if( $tmp && file_exists( $tmp ) && is_dir( $tmp ) && is_writable( $tmp ) ) {
return $tmp;
}
}
if (ini_get('upload_tmp_dir')!==false) {
$tmp = ini_get('upload_tmp_dir');
if( $tmp && file_exists( $tmp ) && is_dir( $tmp ) && is_writable( $tmp ) ) {
return $tmp;
}
}
if( function_exists( 'sys_get_temp_dir' ) ) {
$tmp = sys_get_temp_dir();
if( $tmp && file_exists( $tmp ) && is_dir( $tmp ) && is_writable( $tmp ) ) {
return $tmp;
}
}
# Usual defaults
return wfIsWindows() ? 'C:\Windows\Temp' : '/tmp';
}