Dokuwiki
Updatescript für Dokuwiki
- wikiupdate.sh
#!/bin/bash
#Update des dokuwiki/js/2010
#nur für debian gedacht
#Download der neuesten Version von http://www.splitbrain.org/projects/dokuwiki
#dieses Script und die neue dokuwiki-*.tgz müssen im selben Verzeichnis, wie die wikis liegen.
#Voraussetzungen erstmal prüfen:
if [ ! $UID -eq 0 ] ; then
echo "Sie sind nicht root!"
echo "Exit 1"
exit 1;
fi
#auf ACL-Programm prüfen:
if [ ! `which getfacl` ]; then
echo "acl-Programme fehlen"
#apt-get install acl
exit 1;
fi
#prüfen ob das wikiupdate vorhanden ist.
ls dokuwiki-* >/dev/null
f=$?
if [ ! $f -eq 0 ]; then
echo "Neue Dokuwikidatei nicht im selben Verzeichnis vorhanden!!!"
ls
echo "Exit 1"
exit 1
fi
#testen ob zu viele TGZ-Dateien im Verzeichnis liegen
wikinew="`ls dokuwiki-*`"
echo $wikinew| grep -qi '.tgz ' && { echo "zu viele dokuwiki-*.tgz. Bitte nur eins!"; \
echo $wikinew; exit 1; }
#Wiki auswählen:
echo "Willkommen zum Dokuwikiupdate"
echo "Hier eine Liste der vorhanden Wiki:"
echo ""
#ls -lgd *wiki* | grep "^d" | cut -d " " -f12;
ls -d */ | cut -f1 -d'/' | grep wiki
echo ""
read -p "Welches Wiki soll upgedatet werden ? " wiki
#Erstmal ein Backup des wiki erstellen:
cp -avr $wiki $wiki.backup
#datadir ermitteln
datadir=`grep savedir $wiki/conf/local.php | cut -d "/" -f2 | cut -d "'" -f1`
if [ -s $datadir ]; then
echo "kein savedir in local.php vorhanden"
datadir=`grep savedir $wiki/conf/dokuwiki.php | cut -d "/" -f2 | cut -d "'" -f1`
if [ -s $datadir ]; then
echo "kein savedir in dokuwiki.php vorhanden"
datadir="data"
fi
fi
#acls vom alten Verzeichnis sichern
getfacl --recursive $wiki >$wiki.acl
tar xvfz $wikinew
wikinew=`basename $wikinew .tgz`
#testen ob das Verzeichnis estellt werden konnte:
f=$?
if [ ! $f -eq 0 ]; then
echo "Neues Dokuwikiverzeichnis nicht im selben Verzeichnis vorhanden!!!"
ls
echo "Exit 1"
exit 1
fi
#neue Dateien reinkopieren
cp -avrf $wikinew/{*,.??*} $wiki/
#acls zurücksichern
setfacl --restore=$wiki.acl
chown -vR www-data $wiki/$datadir/media_attic
chown -vR www-data $wiki/$datadir/media_meta
read -p "pause" puffer
#diverses löschen
rm -rf $wikinew
rm $wiki.acl
rm $wiki/conf/msg
#rm -rf $wiki/$datadir/cache/*
rm -rf $wiki/$datadir/cache/messages.txt
exit 0
maximales Uploadlimit für Dateien ändern:
in Datei /etc/php5/apache5/php.ini
upload_max_filesize = 2M
post_max_size = 2M
auf
upload_max_filesize = 20M
post_max_size = 20M
ändern.
Dann Neustart oder Reload des apache2 durchführen.
/etc/init.d/apache2 reload
das Hochladen von Flashdateien erlauben:
Auf dem Rechner muss Flash installiert sein und funktionieren.
dann muss das Dokuwiki-Flash-Plugin nachinstalliert werden (http://www.dokuwiki.org/plugin:flashplayer).
dann die Maximalgröße für den Upload erhöhen (s.o.).
dann an die Datei conf/mime.conf
folgende Zeile anhängen:
flv application/octet-stream
# nochmal <Enter> für einen Zeilenumbruch drücken
dann muss noch eine Datei wiki/data/media/.htaccess
mit folgendem Inhalt erstellt werden:
order allow,deny
Allow from all
Satisfy All
Dann Neustart oder Reload des apache2 durchführen.
/etc/init.d/apache2 reload
jetzt kann das Flash ins dokuwiki normal hochgeladen und eingebettet werden.
Codebeispiel für eine Flashdatei:
<flashplayer width="355" height="200">file=http://meinServer/wiki/data/media/playground/madeira.flv</flashplayer>
oder über ein gesondertes Verzeichnis außerhalb des Doku-Wiki:
<flashplayer width="355" height="200">file=/Reisen/Madeira/Curral_das_Freiras1.flv</flashplayer>
<flashplayer width=„355“ height=„200“>file=/Reisen/Madeira/Curral_das_Freiras1.flv</flashplayer>
Backup
das Backup-Plugin legt seine Backups in das Verzeichnis <meinwiki>/data/media/dw-backup-datum-version.tar.bz2
mögliche Fehler
Fehler:
Die Anzeige ist völlig fehlerhaft und es wird alles durcheinander gewürfelt. Es werden auch keine Gestaltungselemente mehr angezeigt.
Lösung:
siehe in Logdatei: /var/log/apache2/error.log
:
Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater ...
Directive 'register long_arrays' is deprecated in PHP 5.3 and greater ...
die beiden Werte in der Datei /etc/php5/apache2/php.ini
auf Off
setzen und den Apache neu starten.
zurück