Schlagwort-Archive: dudle

Locale Probleme mit Dudle auf 14.04

Sollten sich bei einer Dudle Installation auf 14.04 die Apache error.logs mit Meldungen in der folgenden Art füllen

[cgi:error] [pid 20502] AH01215: /var/www/pfad/zu/dudle/vcs_git.rb:53:in `split': invalid byte sequence in US-ASCII (ArgumentError), referer: https://pfad.zu/dudle/
[cgi:error] [pid 20502] AH01215: \tfrom /var/www/pfad/zu/dudle/vcs_git.rb:53:in `history', referer: https://pfad.zu/dudle/
[cgi:error] [pid 20502] AH01215: \tfrom /var/www/pfad/zu/dudle/giykf19s/edit_columns.cgi:47:in `<main>', referer: https://pfad.zu/dudle/
[cgi:error] [pid 20502] End of script output before headers: edit_columns.cgi, referer: https://pfad.zu/dudle/

und Dudle einen bei der Eingabe von Worten mit Umlauten und / oder Ligaturen wieder auf seine Startseite werfen, dann hilft das Folgende: Zuerst ausschließen, dass man auf dem Server ein generelles Problem mit seinem locales hat. Es hilft ein

dpkg-reconfigure locales

Ein kontrollierender Blick in die folgenden Systemdateien sollte auch nicht schaden. Hier werden die Defaults gesetzt:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
LC_ALL="de_DE.UTF-8"
LANG="de_DE.UTF-8"
/etc/environment (END)

und

LANG="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
/etc/default/locale (END)

Ist hier alles in Ordnung, dann kann der  folgende Eintrag in die dudle.rb helfen:

# /var/www/pfad/zu/dudle/dudle.rb

# coding: utf-8
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

Nach einigem Hin und Her haben mir vor allem diese Einträge bei stackoverflow geholfen auf die richtige Spur zu kommen.

Wer unter CentOS und damit ruby 1.8 arbeitet hat noch Glück: Der Fehler geht an einem vorbei, scheint demnach ein Ubuntu Server und ruby 1.9.x Problemchen zu sein.

Dudle auf 14.04

Der Dienst Dudle ist datenschutzrechtlich eine saubere Alternative zu Doodle, das zwar in der Schweiz zu Hause ist, jedoch Google Analytics einsetzt und die Benutzer mit Werbung bewirft. Außerdem ist die Verwendung von Doodle für Beamte in Baden-Württemberg schlicht verboten.

Die Installation ist kein Zuckerschlecken, geht aber insgesamt dann doch eher freundlich als kompliziert über die Bühne. Das ganze Gefrickel lohnt nur dann, wenn man eine HTTPS Verschlüsselung für die eigenen Seiten schon am Laufen hat – wenn nicht, dann verwendet man besser den Dienst der TUD direkt.

Es kann durchaus sein, dass ich im folgenden ein paar Pakete zu viel an Bord hole – das mag dann bitte jeder selbst für sich prüfen. Außerdem kann es sein, dass einige Pakete nicht installiert wurden, weil diese auf meinem Zielsystem schon vorhanden waren. Anyway – so ging’s bei mir:

apt-get install bzr libgettext-rails-ruby1.8 potool make libgettext-rails-ruby ruby-gettext gettext

Bei mir kamen hierbei die Pakete ruby1.9.1-dev ruby-dev schon mit an Bord und auch die Symlinks von ruby auf ruby1.9.1 wurden eingerichtet.

cd /var/www/ # oder wo auch immer dudle später hin soll

Ein simples bzr branch https://dudle.inf.tu-dresden.de/ dudle bewirft den Benutzer mit Fehlermeldungen. So will es dann klappen:

bzr -Ossl.cert_reqs=none branch https://dudle.inf.tu-dresden.de/ dudle

Das Verzeichnis /var/www/dudle wird mittels des Befehls angelegt, gehört aber erst einmal root, was wir nicht wollen.

chown -R www-data.www-data dudle/
cd dudle/
cp -p config_sample.rb config.rb

In die .htacces im Stammverzeichnis von Dudle sollte man bei der Nutzung von Ruby 1.9.1 (also auf einem 14.04 Server) hinzufügen:

SetEnv RUBYLIB /var/www/dudle/

Geschieht dies nicht, dann wirft Dudle Fehlermeldungen in die Apache error.log, die darauf hindeuten, dass Dudle seine Ruby Dateien nicht findet.

Wir holen uns noch die Sprachpakete für Dudle an Bord:

for i in locale/??; do wget -O $i/dudle.mo https://dudle.inf.tu-dresden.de/locale/`basename $i`/dudle.mo ; done

Die folgenden Schritte integrieren Dudle in den Webserver:

a2enmod auth_digest

Dann die Sitekonfiguration des Apachen bearbeiten – das könnte je nach System z.B. in die folgende Datei sein: /etc/apache2/sites-available/default-ssl.conf

Alias /dudle /var/www/dudle
<Directory /var/www/dudle>
     Options +ExecCGI
     AllowOverride All
     Order allow,deny
     Allow from all
</Directory>

Nachdem die Voraussetzung nun geschaffen sind, Dudle zu installieren, kann der Compiler im Verzeichnis /var/www/dudle angeworfen werden:

make

In den hier auftauchenden Fehlermeldungen (eigentlich sollten keine mehr kommen – die obigen Schritte integrieren alles, was ich habe lernen müssen) kann man sehen, was Dudle noch fehlt. Zumindest so ungefähr. Meistens, so musste ich erfahren, hilft nur eine Suchmaschine weiter, weil die Ruby-Fehlermeldungen etwas kryptisch für mich waren.

Ging alles glatt – den Apachen neu starten:

service apache2 restart

Der Rest ist Anhübschungskram – z.B. durch Anpassung der Dateien im Verzeichnis dudle/css. Empfehlenswert ist das folgende Stylesheet:

wget https://dudle.inf.tu-dresden.de/css/TUD2.css
wget https://dudle.inf.tu-dresden.de/css/tud/logo.png

Ich hab dann noch das Logo ausgetauscht, die Rechte wieder angepasst und beschlossen, dass nun erst einmal alles gut ist.

Dudle legt neue Abfragen im Stammverzeichnis /dudle/ unter jeweils recht kryptisch anmutenden Namen als Ordner an, die alle Umfragedaten (Benutzer, Passwörter derselben, Zeiten etc.) enthalten. Die Passwörter landen gehashed in .htdigest Dateien.

Meine Schule wäre versorgt – andere können den Dienst bei der TUD (Link siehe oben) oder auch gerne das Dudle auf dem Lehrerforbildungsserver nutzen:

https://lehrerfortbildung-bw.de/dudle/

Bei Problemen nach der Eingabe von Umlauten oder Ligaturen in die Dudle Felder: hier weiterlesen.