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