Stud.IP Installation Guide
Version 1.3

Inhalt:

1 Installation
1.1 bentigte Programme und Module
1.1.1 Konfigration des Systems fr groe Nutzerzahlen
1.2 Dateien entpacken
1.3 Einrichten der phplib
1.3.1 Anpassen der local.inc
1.3.2 grundlegende Modulkonfiguration
1.3.3 weitere optionale Paramter in der local.inc
1.3.4 Zustzliche LaTeX-Formate definieren
1.4 Anpassung der php.ini Werte
1.4.1 Eintragen der Werte in die php.ini
1.4.2 Verndern der php.ini Werte ber eine <Directory>-Anweisung
1.4.3 Verndern der php.ini Werte ber eine .htaccess Datei
1.5 Mailversand
1.6 Anlegen der MySQL Datenbank 
1.7 Konfiguration des Stud.IP Basissystems
1.7.1 Verzeichnisse und Pfade
1.7.2 config.inc.php
1.8 Konfiguration der Stud.IP Module und optionalen Features
2 Der erste Start von Stud.IP


1 Installation
--------------
Stud.IP setzt fr den produktiven Einsatz ein LAMP-System 
(Linux/Apache/MySQL/PHP) voraus. Alternativ ist eine Installation auf 
auf einem WAMP-System (Windows-System) mglich, wird jedoch von uns 
nicht empfohlen, da einige Kernfunktionen wie etwa das Versenden von 
eMails, die Bildbearbeitung oder die Exportfunktion nicht funktionieren.
Die folgende Anleitung versteht sich als QuickstartGuide und beschreibt
lediglich den Einsatz einer auf Linux/Unix basierten Umgebung.
Wenn Sie bereits umfangreiche Erfahrungen im Einrichten von LAMP-Systemen 
haben, finden sie im Verzeichnis studip-doc auch eine sehr geraffte 
stichwortartige Installationsanleitung (example_installation_suse9-1.txt).

Sollten Sie dennoch unter Windows testen wollen, empfehlen wir Ihnen die 
Verwendung von XAMPP (http://www.apachefriends.org), einem Bndel aus 
MySQL, Apache und einigen Zustzen, welches keine separate Installation bentigt.

WICHTIGER HINWEIS: Diese Installationsanleitung setzt root Rechte
bezglich des Webservers (inclusive PHP Interpreter) und der MySQL
Datenbank voraus.


1.1 bentigte Programme und Module
----------------------------------
Fr Stud.IP werden folgende Programme bentigt:

Basiskomponenten

- Apache Webserver (Version 1.3 oder besser) (http://httpd.apache.org)
- MySQL-Datenbankserver (Version 3.23, empfohlen Version 4.0 oder besser) (http://www.mysql.com)
- PHP-Apache Modul (Version 4.2.1 oder besser, aber nicht Version 5.x) (http://www.php.net)

Tools

Fr die Grundfunktionalitt werden folgende Tools bentigt:
- zip / unzip (http://www.info-zip.org/pub/infozip/)
(wenn sie die ziptools nicht zur Verfgung haben, knnen sie die Variable
$ZIP_USE_INTERNAL auf true setzen.)

Bentigt fr den optionalen LaTeX-Renderer:
- vollstndig konfiguriertes LaTeX-System (http://www.tug.org/teTeX/)
- dvips (http://www.radicaleye.com/dvips.html)
- ImageMagick (http://www.imagemagick.org/)

PHP-Module

Die folgenden Module mssen in PHP einkompiliert sein. Fr die Grund-
funktionalitt werden folgende Module bentigt:
- mysql
- gettext
- session

Um den Chat zu nutzen, werden folgende Module empfohlen:
- sysvshm
- sysvsem
(nheres im Abschnitt 1.8 "Konfiguration der Stud.IP Module")

Um das Export-Tool zu nutzen, werden zustzlich folgende Module bentigt:
- xml
- xslt 
Zudem mssen der FOP (Formating Objects Processor, http://xml.apache.org/fop/) 
und die Java Runtine Environment, JRE (http://java.sun.com), installiert sein.
(nheres im Abschnitt 1.8 "Konfiguration der Stud.IP Module")

Die Installation des eigentlichen LAMP-System wird vorausgesetzt - geeignete 
Anleitungen finden sich in einer groen Anzahl im Web.
Die korrekte Funktionsfhigkeit von PHP im Zusammenspiel mit dem Apache und 
MySQL  lt sich mit einem einfachen Script feststellen:

<?
phpinfo();
?>

Dabei werden alle einkompilierten Module angezeigt und es knnen die Einstellungen 
der php.ini berprft werden (siehe dazu im Abschnitt 1.3).


1.1.1 Konfigration des Systems fr groe Nutzerzahlen
-----------------------------------------------------

Grundstzlich ist Stud.IP in der Standard-Konfiguration der im letzten Abschnitt angegebenen
Komponenten lauffhig. 
Weitere Einstellungen, die den Server fr den Einsatz mit groen Nutzerzahlen
"tunen", knnen in der httpd.conf (Apache), in der my.cnf (MySQL) und 
in den Systemeinstellungen vorgenommen werden. Einzelheiten finden Sie in der 
Datei studip_max_configuration.txt im Verzeichnis studip-doc.  


1.2 Dateien entpacken
---------------------
Die heruntergeladene Datei sollte mit 
  tar xjvf studip-1.3.0-1.tar.bz2
in ein temporres Verzeichnis entpackt werden. Dieses Verzeichnis kann 
nach erfolgreicher Installation gelscht oder als Referenz aufbewahrt werden.

Kurzbersicht der im Paket vorhandenen Verzeichnisse:

- studip-db			SQL-Dumps fr mysql-Datenbankeinrichtung und 
					Dumps mit Demo-Daten.
- studip-doc		Dokumentationen zur Installation
- studip-config		Default-Konfigurationsdateien (local.inc, config.inc.php)
- studip-htdocs		Das Stud.IP-Kernsystem (spter im Document-Root des Webservers)
- studip-phplib		Angepasste phplib-Version fr Stud.IP
- studip-update		Migrationsskripte fr ltere Stud.IP-Versionen
					(Fr Versionsupgrade bitte README lesen!)
- studip-varlib		Default-Struktur fr Datenverzeichnisse ausserhalb
					des Apache-Document-Root-Verzeichnisses.


1.3 Einrichten der phplib
-------------------------
Stud.IP verwendet die phplib-7.2d mit leichten Modifikationen. Das Orginal
ist unter http://phplib.sourceforge.net/ zu finden. 

Die angepasste Version befindet sich im Verzeichnis studip-phplib 
des Installations-Paketes und sollte in das Apache-Root-Verzeichnis kopiert
werden. Ist dies z.B. /usr/local/httpd, dann sind die Dateien folglich nach 
/usr/local/httpd/php zu kopieren. Fr debian-Linux 3.0 ist z.B. das Verzeichnis 
/usr/lib/apache eine gute Wahl.

ACHTUNG: Bitte dieses Include-Verzeichnis nicht unterhalb des Document-Root 
des Webservers einfgen, da hier u.a. die Datenbankpasswrter gespeichert
werden!
Seit SuSE 8.1 befindet sich das Root-Verzeichnis des Webservers in /srv/www.

ACHTUNG: Stud.IP verwendet seit der Version 1.2 eine weiterentwickelte Methode
der Speicherung von Session- und User-Daten durch die PHPLIB. Wenn sie Updaten,
beachten Sie bitte UNBEDINGT die Hinweise im Verzeichnis studip-update zu dem 
Versionssprung 1.1.5 zur 1.2.
Fr Neuinstallationen hat diese nderung keine Bedeutung.

1.3.1 Anpassen der local.inc
----------------------------
Die local.inc im Verzeichnis der phplib ist eine der beiden zentralen 
Konfigurationsdateien des Stud.IP-Systems. Hier werden vor allem grundlegende 
technische Einstellungen festgelegt. 
(weitere Einstellungen knnen in der config.inc.php vorgenommen werden - dort sind vor 
allem inhaltliche Einstellungen wie diversen Bezeichungen und andere Voreinstellungen
abgelegt - oder im System im Konfigurationseditor bearbeitet werden. Letzter befindet
sich noch im Testbetrieb um wird bisher nur fr einen sehr kleinen Teil der Konfigurations-
einstellungen verwendet.).
Benennen Sie die enthaltene Datei local.inc.dist in local.inc um (eine "frische"
Kopie der local.inc.dist befindet sich zustzlich im Verzeichnis studip-config).
Folgende Parameter mssen an die lokalen Gegebenheiten angepasst werden bzw. 
sollten berprft werden:

- Eintragen von $UNI_NAME_CLEAN: Hier tragen Sie bitten den Namen ihrer Einrichtung
  ein (der Namen muss "clean", also ohne html-Entitten eingtragen werden!)
- Festlegen der Datenbankanbindung
  $DB_STUDIP_HOST, $DB_STUDIP_USER, $DB_STUDIP_PASSWORD, $DB_STUDIP_DATABASE
  (Wenn Sie die Ilias 2 Anbindung nutzen wollen, mu ein weiter Eintrage analog 
  fr DB_ILIAS vorgenommen werden. (siehe 1.6 "Anlegen der MySQL Datenbank"))
- Anpassung des Mailhostes, wenn Mails nicht ber einen lokalen MTA,
  sondern einen externen Rechner verschickt werden sollen. ($MAIL_HOST_NAME)
- Absoluter Pfad zu den Stud.IP-Programmdateien, sichtbar fr den Webserver
  ($ABSOLUTE_PATH_STUDIP)
- Anpassung des Pfades zum Upload-Verzeichnis, muss nicht fr den Webserver
  sichtbar sein ($UPLOAD_PATH)
  ACHTUNG: Fr dieses Verzeichnis bentigt der Webserver Schreibrechte!
- Absoluter Pfad zum Archiv-Verzeichnis, muss nicht fr den Webserver
  sichtbar sein ($ARCHIV_PATH)
  ACHTUNG: Fr dieses Verzeichnis bentigt der Webserver Schreibrechte!
- Anpassung des Temp-Verzeichnisses, falls ntig ($TMP_PATH)
- Anpassung der Pfade zu allen bentigten Tools fr die Bildbearbeitung 
- Anpassung der Pfade fr den Latexrenderer, falls dieser benutzt werden 
  soll. Ansonsten kann das Modul hier abgeschaltet werden.
- Liegen die Stud.IP-Programmdateien nicht innerhalb des document root des Apache,
  ist also $ABSOLUTE_PATH_STUDIP kein Unterverzeichnis von $_SERVER["DOCUMENT_ROOT"],
  dann schlgt die automatische Generierung der Variablen $CANONICAL_RELATIVE_PATH_STUDIP
  am Ende der local.inc fehl. Das fhrt dazu, dass der Session Cookie nicht
  korrekt gesetzt werden kann.
  In diesem Fall mssen Sie die Variable (local.inc, ab Zeile 375) von Hand 
  auf das korrekte relative Verzeichnis setzen, unter dem Stud.IP im Verhltnis 
  zur Adresse des Webservers zu erreichen ist ("/" am Ende nicht vergessen).
- Kann die Stud.IP Installation ber mehrere Adresse (etwa der reale Server-
  Name und ein virtueller Webserver) erreicht werden, sollte Sie im Abschnitt
  "domain and path translation" alle verfgbare Servernamen bzw. Pfadangaben
  ablegen. Stud.IP "bersetzt" dann evtl. im System erstellte interne Links
  in die jeweils passende Form (ansonsten gibt es Probleme mit der Cookie-
  Verwaltung durch den Browser).
- $ABSOLUTE_URI_STUDIP muss ggf. angegeben werden, wenn der Server in einer DMZ
  steht oder aus anderen Grnden die korrekte URL nicht zur Laufzeit bestimmt
  werden kann (siehe Modul "Emailbenachrichtigungen")

1.3.2 grundlegende Modulkonfiguration
-------------------------------------
In der local.inc knnen Sie auch die Modulkonfiguration in dem entsprechenden 
Abschnitt einstellen. Fr jedes Modul gibt es einen Schalter $<MODULNAME>_ENABLE, 
ber den Sie das Modul ein- und ausschalten knnen. 
Einige Module verlangen weitere Angaben wie Pfadangaben oder andere Einstellungs-
option, die Sie im Normalfall einfach so lassen, wie im Auslieferungszustand 
eingestellt.
Wichtig sind nur folgende Optionen:
- Falls Sie das Modul Export benutzen wollen, so mssen die Werte $FOP_SH_CALL und
  $JAVA_ENV_CALL entsprechend gesetzt werden.
- Falls Sie das Modul SRI-Schnittstellen (Externe Seiten) nutzen wollen, mssen
  Sie Ihren Servernamen fr $EXTERN_SERVER_NAME festlegen und fr 
  $EXTERN_CONFIG_FILE_PATH ein Verzeichnis festlegen, in dem die Konfigurations-
  dateien abgelegt werden.
  ACHTUNG: Fr dieses Verzeichnis bentigt der Webserver Schreibrechte!


1.3.3 weitere optionale Paramter in der local.inc
-------------------------------------------------
Neben den oben beschrieben Optionen gibt es noch weitere Parameter, die in der 
local.inc optional festgelegt werden knnen:
- $LATEXRENDER_ENABLE, $WIKI_ENABLE, $SCM_ENABLE, $SMILEYADMIN_ENABLE schalten einige
  Systemfunktionen frei.
- $ALLOW_GROUPING_SEMINARS, $ALLOW_SELFASSIGN_STUDYCOURSE, $SHOW_TERMS_ON_FIRST_LOGIN
  sind einige erweiterte Einstellungen, die Sie unter Umstnden umstellen knnen, etwa 
  wenn Sie mit einer externen Authentifizierung (LDAP o..) arbeiten
- Einstellungen fr die Internationalisierung von Stud.IP (braucht im Normalfall 
  nicht angepasst zu werden)
- Einstellungen fr Authentifizierungs-Plugins (brauchen nur angepasst werden, wenn
  Sie eine externe Authentifizierung einsetzen).
- Weitere Optionen zur Authentifizierung: $ALLOW_CHANGE_USERNAME, $ALLOW_CHANGE_EMAIL, 
  $ENABLE_SELF_REGISTRATION knnen in Verbindung mit der Standard-Authentifiezierung
  (also dem Auslierfurngszustand) angepasst werden.
  
Weitere Parameter knnen seit der Version 1.2 direkt im Konfigurationseditor im Breich 
"globale Einstellungen" durch root-Benutzer im Webfrontend eingegeben bzw. umgestellt 
werden. Diese Konfigurationsmglichkeit befindet sich jedoch noch im Aufbau und erfasst
bisher nur einige wenige Parameter.

1.3.4 Zustzliche LaTeX-Formate definieren
------------------------------------------
Der LaTeX-Renderer ist standardmig so konfiguriert, dass damit mathema-
tische Formeln gesetzt und angezeigt werden knnen. Es ist mglich, weitere 
Formate selbst zu definieren und damit z.B. phonetische Zeichenstze, 
arabische, hebrische, kyrillische Schrift, bestimmte Diagrammtypen etc. 
zur Verfgung zu stellen.

Dazu sind zwei Punkte zu beachten:

- Die Variable $LATEX_FORMATS muss um einen Eintrag fr das zustzliche 
  Format erweitert werden. (Die genaue Syntax und zwei Beispiele sind in 
  der Datei local.inc.dist angegeben.)
- Die zustzlich bentigten LaTeX-Packages mssen in der lokalen Installation
  verfgbar sein.

1.4 Anpassung der php.ini Werte
-------------------------------
Um Stud.IP ordnungegem zum laufen zu bringen, mssen einige der Werte der php.ini
angepasst werden. Dabei sind drei unterschiedliche Varianten mglich:
- Setzen Sie direkt die entsprechenden Werte in der php.ini. Wenn Sie auf dem Server
  Stud.IP als einzige PHP-Software einsetzen, ist dies eine gute Wahl.
- Sie knnen die Werte auch direkt in der httpd.conf des Apache per <Directory>-
  Anweisung setzen. Das hat den Vorteil, dass verschiedene PHP-Programme nebeneinander 
  installiert werden knnen und verschiedene Einstellungen der php.ini-Optionen je 
  nach Verzeichnis gelten.
- Schlielich knnen Sie auch die Werte direkt in einer .htaccess Datei ablegen und 
  damit direkt im Verzeichnis der Software die Einstellungen setzen. Diese Variante
  hat den Vorteil, dass die keinen Zugriff auf den Webserver bentigen - etwa bei einer 
  Installation auf dem Rechner eines externen Providers.

ACHTUNG: Sie mssen eine der beiden letzten Varianten whlen, um Stud.IP und ILIAS auf 
einem Server zusammen betreiben zu knnen!

1.4.1 Eintragen der Werte in die php.ini
----------------------------------------
Die php.ini sollte sich nach der Installation von php in /etc/httpd/ 
(bzw. bei SuSE ab 7.2 in /etc, bei debian in /etc/php4/apache) befinden.
Sie sollten diese Variante der Konfiguration nur whlen, wenn Sie nur ein PHP-Programm
installiert haben. 
Wir empfehlen fr einen reibungslosen Betrieb die beiden letzten Varianten.

Folge Werte mssen angepasst werden:

auto_prepend_file       =       prepend4.php

Damit wird vor jedem Seitenaufruf die phplib initialisiert.

include_path            =       .:/srv/www/studip-phplib

Der include_path muss auf das Verzeichnis der phplib, das zuvor erstellt wurde, 
verweisen, In unserem Beispiel ist das /srv/www/studip-phplib.

register_globals = on

Diese Option muss auf jeden Fall gesetzt werden, da Stud.IP zur Zeit noch mit
globalen Variablen arbeitet.

magic_quotes_gpc = on

Die Option ist ebenfalls ntig, damit Stud.IP korrekt funktioniert.

upload_max_filesize = 8M

Dieser Wert beeinflusst direkt die maximale Gre von Datei-Uploads. Wenn Sie grere
Dateien zulassen wollen, mssen Sie diesen Wert entsprechend hoch einstellen.

memory_limit = 16M

post_max_size = 9M

Dieser Wert muss geringfgig ber upload_max_filesize liegen

max_execution_time = 300

Dieser Wert beeinflusst die maximale Ausfhrungsdauer eines Scriptes. Ein hherer
Wert hat sich hier bewhrt.

1.4.2 Verndern der php.ini Werte ber eine <Directory>-Anweisung
-----------------------------------------------------------------

Nach Mglichkeit sollte die Anpassungen der php ini Werte ber eine <Directory>
Anweisung in der Apache Konfigurationsdatei vorgenommen werden. Auf diese Weise
werden andere laufende PHP-Applikationen nicht beeinflusst.
Im Installationsarchiv unter /studip-config befindet sich eine Datei 
studip-httpd.conf, die alle notwendigen Einstellungen enthlt. Mit einer 
aktuellen SuSE Distribution wre die Vorgehensweise folgende:

- Kopieren von studip-httpd.conf nach zB. /etc/apache2/conf.d/studip-httpd.conf
- Anpassen der Pfadangaben in studip-httpd.conf
- Webserver neustarten

In anderen Distributionen oder mit lteren Apache Versionen kann man den Inhalt 
von studip-httpd.conf einfach in die httpd.conf kopieren, oder eine include
Anweisung verwenden, um studip-httpd.conf einzubinden.


1.4.3 Verndern der php.ini Werte ber eine .htaccess Datei
-----------------------------------------------------------
hnlich verhlt es sich, wenn die Werte ber eine .htaccess Datei verndert
werden. Diese Variante hat den Vorteil, dass man kein Zugriff auf den Webserver 
bzw. die Konfigurationsdatei des Webserver haben muss.
Dazu muss in der httpd.conf lediglich der Eintrag

AllowOverride All

entweder global fr alle Verzeichnisse oder das verwendete Verzeichnis als <Directory>-
Anweisung eingetragen werden.
Anschlieend legt man im entsprechenden Verzeichnis (also dem Wurzelverzeichnis
der Stud.IP-Installation) eine .htaccess-Datei an, die die entsprechenden Werte
der php.ini wnthlt.
Im Installations-Paket unter /studip-config befindet sich eine .htaccess-
Datei, die alle notwendigen Einstellungen enthlt. 


1.5 Mailversand
---------------
Damit das Registrierungsmodul von Stud.IP funktioniert, muss der Mailversand
konfiguriert sein, d.h. der Webserver muss in der Lage sein Mails ber den in
$MAIL_HOST_NAME angegebenen Mailserver zu verschicken. In den verschickten Mails
ist Reply-To auf abuse@<SERVER_NAME> gesetzt, Mails an diese Adresse sollten an
einen der Administratoren weitergeleitet werden.
ACHTUNG: Wenn der Mailversand nicht ordnungsgem konfiguriert wurde, funktioniert weder
die Selbstregistrierung von Nutzern noch das Eintragen von neuen Nutzern, da die 
Registrierungsmail bzw. das Passwort auf diese Weise an die Nutzer zugestellt werden.

Die beiden Parameter $MESSAGING_FORWARD_AS_EMAIL und $MESSAGING_FORWARD_DEFAULT
erlauben es, systeminterne Nachrichten die gespeicherte eMail-Adresse eines Nutzers
weiterzuleiten und dafr einen Default festzulegen.

1.5.1 Emailbenachrichtigungen einrichten
Im Administrationsbereich von Stud.IP gibt es einen neuen Menupunkt 
/globale Einstellungen/Konfiguration. Hier knnen
einige Einstellungen zur Laufzeit vorgenommen werden. Die Option
MAIL_NOTIFICATION_ENABLE schaltet die Benachrichtigungsfunktion ein. Das
eigentliche verschicken der Mails erfolgt ber das Skript
send_mail_notifications.php, welches im Verzeichnis der Phplib zu finden ist.
Wenn das neue Sessionmanagement nicht benutzt wird, muss dieses Skript noch
angepasst werden, es muss in Zeile 33 "prepend4.php" in "prepend.php" gendert
werden. Wenn das php binary in /usr/bin/php zu finden ist ("which php" auf der
Kommandozeile gibt darber Auskunft), und die Datei ausfhrbar gemacht ist, kann
man das Skript direkt in einen cronjob einbauen. Das Skript gibt fr jede 
verschickte Mail eine Nachricht zurck, daher sollten die Ausgaben des Skriptes
in eine Datei umgeleitet werden.
Ein Beispiel:
22 2 * * * root /srv/www/studip-phplib/send_mail_notifications.php >> /var/log/studip_notifications 2>&1
Zum Testen sollte es einmal direkt aufgerufen werden, nachdem man mit einem
Account die Benachrichtigungen fr bestimmte Veranstaltungen aktiviert hat.
In der local.inc muss $ABSOLUTE_URI_STUDIP konfiguriert werden, wenn das Skript 
zum verschicken von Mailbenachrichtigungen benutzt wird. Sollten die Eintrge
von $MAIL_LOCALHOST und $MAIL_HOST_NAME leer sein (d.h. der Webserver
selbst verschickt Mails) mssen auch hier korrekte Eintrge gemacht
werden. (Da das Skript zum verschicken der Benachrichtigungen als php
shell skript ausgefhrt wird, knnen diese Angaben nicht aus der
Umgebungsvariablen SERVER_NAME hergeleitet werden.)
	  

1.6 Anlegen der MySQL Datenbank 
-------------------------------
Stud.IP setzt eine installierte MySQL Datenbank in der Version 3.23 oder besser
voraus.
Mit der Version 5.x von Mysql bestehen noch Inkompatibilitten, daher raten wir
von der Benutzung ab.

Zur Inbetriebnahme von Stud.IP muss eine Datenbank, normalerweise mit dem Namen
'studip', angelegt werden.

mysql -e "create database studip"

In der Version 4.1 muss darauf geachtet werden, dass der voreingestellte
Zeichensatz fr die Datenbank "latin1" ist, und die verwendete Kollation
"latin1_german1_ci" (sofern man in erster Linie deutsche Inhalte speichern
mchte).

mysql -e "CREATE DATABASE studip DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci"

und die entsprechenden Tabellen hinzugefgt werden:

mysql studip < studip-db/studip.sql

Im Verzeichnis /studip-db werden folgende Datenbankdumps mitgeliefert:
(Bitte stellen Sie die Dumps in der hier vorgegebenen Reihenfolge ein!)

- studip.sql: Enthlt die Grundstruktur aller bentigten Tabellen. 
  Dieser Dump muss installiert werden.
- studip_root_user.sql: Mit diesem Dump wird ein Stud.IP-Nutzer vom Status root
  (innerhalb des Systems) angelegt. 
  Accountname: root@studip
  Password: testing
  ACHTUNG: Das Passwort sollte, wenn das System erfolgreich aufgesetzt wurde, 
  sofort gendert werden!
  Dieser Dump sollte installiert werden, wenn Sie den root-User nicht von Hand
  in der Datenbank anlegen mchten (nur fr erfahrene Nutzer!)
- studip_default_data.sql: Enthlt die Voreinstellungen, die direkt in die
  Datenbank geschrieben werden. 
  Dieser Dump muss installiert werden.
  
Ein weiterer Dump muss eingespielt werden, wenn die Ressourcenverwaltung 
genutzt werden soll:

- studip_resources_default_data.sql: Dieser Dump enthlt notwendige Defaults fr
  die Ressourcenverwaltung. Er ist zum Betrieb der Ressourcenverwaltung notwendig.

Wenn Sie das System zunchst testen wollen, knnen Sie die folgenden Demo-Daten
einspielen:

- studip_demo_data.sql: Mit diesem Dump werden einige Demonstrations-Daten ins
  Systen eingespielt. Das Einspielen dieses Dumps ist zum Betrieb nicht notwendig.
  Enthalten sind folgenden Testaccounts:
  test_admin, test_dozent, test_tutor und test_autor. Bei allen Accounts ist 
  das Passwort ebenfalls testing.
  ACHTUNG: Bitte lschen Sie diese Accounts, wenn das System in den Produktiv-
  betrieb geht oder die Testphase endet!

Zudem muss ein Datenbankbenutzer fr studip angelegt werden.
In der phplib Datei local.inc, die auf Stud.IP angepasst wurde, muss
dieser unter $DB_STUDIP_USER mit entsprechendem Passwort ($DB_STUDIP_PASSWORD)
eingetragen werden. Dieser Datenbankbenutzer bentigt die Rechte: SELECT, 
INSERT,UPDATE, DELETE, CREATE, DROP,CREATE TEMPORARY TABLES.

mysql -e "GRANT USAGE ON *.* TO 'studip'@'localhost' IDENTIFIED BY '<password>'"
mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,CREATE TEMPORARY TABLES
ON studip.* TO 'studip'@'localhost'"

Am Ende bitte nicht vergessen, die MySQL Datenbank neu zu starten (oder
"FLUSH PRIVILEGES" ausfhren).

Als einfach zu bedienendes Tool haben sich bei uns "MySQL Query Browser" 
(http://dev.mysql.com/downloads/query-browser/) und
phpMyAdmin (http://www.phpwizard.net/projects/phpMyAdmin/) bewhrt. 


1.7 Konfiguration des Stud.IP Basissystems
------------------------------------------
Die Dateien des Stud.IP-Kernystems befinden sich im Verzeichnis /studip-htdocs. 
Dieses Verzeichnis sollte ins Document-Root-Verzeichnis des Webservers kopiert 
werden, in unserem Beispiel also nach /srv/www/htdocs/studip.
Wer einen anderen Verzeichnisnamen benutzt, muss daran denken in der
local.inc $ABSOLUTE_PATH_STUDIP entsprechend zu ndern.


1.7.1 Verzeichnisse und Pfade
-----------------------------
In folgenden in der local.inc angegebenen Verzeichnissen muss der 
Webserver-User(zumeist ist das wwwrun.nogroup, zur Sicherheit am besten
in der httpd.conf nachsehen) Schreibrechte haben:

- $UPLOAD_PATH: Ablage fr hochgeladene Dokumente
  Default: /var/lib/studip/upload_doc/
- $ARCHIV_PATH: Ablage fr archivierte Veranstaltungen
  Default: /var/lib/studip/archiv/
- $EXTERN_CONFIG_FILE_PATH (wenn die SRI-Schnittstelle benutzt wird)
  Default: /var/lib/studip/extern_config/
- $TEXCACHE_PATH: Cache fr erzeugte TeX-Formeln (bei Verwendung des LaTeX-Renderers)
  Default: <Document-Root>/pictures/tex/
- $SMILE_PATH: (Wenn die Smileyverwaltung benutzt werden soll)
  Default: <Document-Root>/pictures/smile/
- $TMP_PATH: Ablage fr temporre Dateien
  Default: /tmp/


Die ersten drei Verzeichnisse drfen NICHT von auen ber den Webserver erreichbar sein, 
der TeX-Cache und Smile-Path jedoch MSSEN erreichbar sein.

Zudem schreibt Stud.IP in das Verzeichnis  <Document-Root>/user. Hier werden die 
Bilder der Nutzer abgelegt. Dafr existiert zur Zeit noch keine Konfigurationsoption.
Auch hier bentigt der Webserver Schreibzugriff.

Der Zugriff auf das Temp-Verzeichnis (per default /tmp) muss ebenfalls gewhrleistet 
sein.

1.7.2 config.inc.php
--------------------
Zum Betrieb von Stud.IP muss im Stammverzeichnis der Stud.IP Installation die
config.inc.php angelegt werden. Sie finden dort bereits eine Distributionsversion 
mit dem Namen config.inc.php.dist. Benennen Sie die Datei in config.inc.php um (eine "frische" 
Kopie der config.inc.php.dist befindet sich zustzlich im Verzeichnis studip-config).

In der config.inc.php sollten Sie zunchst nur die allgemeinen Daten wie $UNI_URL, 
$UNI_CONTACT und $UNI_INFO setzen.
Alle weiteren Einstellungen sollten als Default gut funktionieren - verndertn Sie
diese Optionen bitte erst, wenn sie mit dem System bereits vertraut sind.
ACHTUNG: Wenn Sie das System im Regelbetrieb einsetzen, sollten nachtrglich ausser
den obengenannten Optionen mglichst keine Einstellungen mehr verndert werden, da 
sonst Inkonsistenzen in der Datenbank auftreten knnen.


1.8 Konfiguration der Stud.IP Module und optionalen Features
------------------------------------------------------------
Neben dem Basissystem existieren einige Stud.IP Module, die besondere Voraussetzungen 
zum Betrieb bentigen oder speziell konfiguriert werden mssen. In Auslieferungszustand
werden diese Module mit installiert, daher sollten sie im entsprechenden Abschnitt der 
local.inc einen Blick darauf werden, welche Module existieren und welche berhaupt 
bentigt werden (siehe unter 1.3.2 "grundlegende Modulkonfiguration").

Latex-Renderer:
Der LaTeX-Renderer kann in der local.inc unter $LATEXRENDER_ENABLE ein- bzw.
ausgeschaltet werden (default: ein). Wenn er eingeschaltet ist, knnen an
verschiedenen Stellen in Stud.IP LaTex-Formeln durch [tex]...[/tex] gesetzt
werden.

Export-Modul:
Fr den Export von Daten als HTML, PDF etc. wird die XSLT-Untersttzung
fr PHP bentigt. Falls die in der verwendeten PHP-Installation nicht
vorhanden ist, sind die Sablotron und expat Bibliotheken zu installieren
(www.gingerall.com) und PHP entsprechend neu zu konfigurieren (configure
--enable-xslt --with-xslt-sablot). Fr Debian erledigt beides das Paket 
php4-xslt (apt-get install php4-xslt).
Fr den Export als PDF ist zustzlich FOP (Formatting Objects Processor) aus dem
Apache XML Projekt notwendig. (http://xml.apache.org/fop/download.html)
FOP ist in Java realisiert, es wird also auch ein lauffhiges JRE bentigt.
$FOP_SH_CALL muss den kompletten Pfad zum FOP Startskript enthalten. In 
$JAVA_ENV_CALL muss evtl. der Pfad zu einem Skript zum Setzen der Java
Umgebungsvariablen eingetragen werden (/etc/profile.d/alljava.sh bei einer SuSE
Distribution)

Grafische Evaluationsauswertung:
Die Evaluationsauswertung kann ebenfalls als PDF exportiert werden, und bentigt
dazu den gerade erwhnten FOP.

Chat-Modul:
Das Chat Modul bentigt die PHP Module sysvshm und sysvsem. Sollten diese Module
nicht verfgbar sein, kann man auch $CHAT_SERVER_NAME auf "ChatFileServer"
umstellen, in diesem Fall luft die Datenspeicherung dateibasiert (sehr
schlechte Performance, nicht fr grere Installationen zu empfehlen!).
Eine weitere Mglichkeit ist die Speicherung in einer Tabelle der Datenbank,
in diesem Fall sollte $CHAT_SERVER_NAME auf "ChatMysqlServer" umgestellt werden.

Ilias-Connect-Modul (Ilias 2):
Fr das Modul "Ilias Connect", dass die Verbindung zu Ilias Lernmodulen
ermglicht, wird eine laufende Ilias Installation der Version 2.3.3 oder besser
(nicht 3.x !) bentigt. Die Datei studip-htdocs/lernmodule/studip2ilias.php muss
ins Ilias Stammverzeichnis kopiert werden. Es muss ein Datenbankbenutzer mit
Passwort in $DB_ILIAS_USER und $DB_ILIAS_PASSWORD eingetragen werden, dieser
braucht SELECT, INSERT, UPDATE und DELETE Rechte fr die Ilias Datenbank. In 
$ABSOLUTE_PATH_ILIAS muss die komplette URL der Ilias Installation eingetragen
werden.

Elearning Schnittstelle (Ilias 3):
Hier eine gekrzte Anleitung fr Ungeduldige:
- Installieren sie Ilias in einer Version ab 3.6.0 nach Anleitung (Die
Installation kann auch auf einem anderen Server liegen)
- Wenn sie Ilias 3.6.0 benutzen, kopieren sie die Datei
studip-htdocs/elearning/studip_referrer.php in das Ilias Verzeichnis (dort
befindet sich bereits eine ltere Version)
- aktivieren sie in Ilias 3 unter Administration/Einstellungen den Punkt
"Externe Benutzerverwaltung (SOAP)"
- Legen sie in Ilias einen Administrationsaccount an, der zur Kommunikation
benutzt werden soll. Melden sie sich einmal mit diesem Account in Ilias an
(wichtig!)
- Legen sie im "Magazin" eine Kategorie an, unter der die Daten von Stud.IP
Nutzern gespeichert werden sollen.
- in der Konfiguration von Stud.IP (local.inc) setzen sie $SOAP_ENABLE und
$ELEARNING_INTERFACE_ENABLE auf true.
- in der Variable $ELEARNING_INTERFACE_MODULES['ilias3'] tragen sie die Daten
ihrer Ilias Installation ein (name, ABSOLUTE_PATH_ELEARNINGMODULES,
ABSOLUTE_PATH_SOAP , soap_data (username und password fr den gerade angelegten
Administratoraccount, client_id der Ilias Installation))
- Rufen sie in Stud.IP als "root" in den Administrationsbereich unter
Tools/Lernmodul-Schnittstelle und whlen sie ihre Ilias Installation aus. Geben
sie weiter unten auf der Seite unter "Kategorie" den Namen der Kategorie ein,
die sie im Ilias Magazin erstellt haben, und klicken sie auf "aktivieren"

Eine ausfhrlichere Anleitung finden sie in der Datei 
verbindung_studip_ilias3.rtf oder verbindung_studip_ilias3.pdf
in diesem Verzeichnis.


Literaturverwaltung:
Zunchst ist sicherzustellen, dass PHP mit der Yaz-Erweiterung kompiliert wurde.
(Eine kurze Erklrung finden sie unter http://www.php.net/yaz)
Diese dient dazu, externe Literaturkataloge ber die Z39.50-Schnittstelle abzufragen.
Sie knnen neben den mitgelieferten Plugins weitere Plugins im Verzeichnis 
<Document-Root>/lib/classes/lit_search_plugins fr ihre Bibliothek(en) anlegen.
Bitte nutzen Sie die mitgelieferten Plugins fr den GVK (Gemeinsamer Verbundkatalog
des GBV) und die SUB Gttingen (Niederschsische Staats- und Universittsbibliothek)
als Vorlage fr weitere Plugins und erkundigen sie sich bei Ihrer Bibliothek
nach Einzelheiten fr die Anbindung. Falls ihre Bibliothek Mitglied im GBV ist, knnen
sie einfach eine neue Klasse von StudipLitSearchPluginGvk.class.php ableiten,
und mssen nur die Felder z_host und z_profile anpassen. Der Name ihres Plugins muss mit 
StudipLitSearchPlugin beginnen.
Dann knnen sie das Plugin in der Datei local.inc unterhalb von "literature search plugins"
aktivieren, indem sie es in das array $_lit_search_plugins eintragen. Hier knnen sie 
zustzlich einen Link eintragen, der in den Web Opac ihrer Bibliothek verweist.

Downloadlinks (Apache rewrite):
In Stud.IP wird an vielen Stellen zum bertragen von Dateien das php-script
sendfile.php verwendet. Seit der Stud.IP-Version 1.3 besteht die Mglichkeit das
Aussehen der Downloadlinks ber den Parameter SENDFILE_LINK_MODE in der
Systemkofiguration zu ndern. Es sind die Werte old, normal und rewrite mglich.
old:
http://www.server.de/studip/sendfile.php?/force_download=1&type=0&file_id=43dce79ba3ab55b906c59317b5e6cc03&file_name=test.txt

normal:
http://www.server.de/studip/sendfile.php?force_download=1&type=0&file_id=43dce79ba3ab55b906c59317b5e6cc03&file_name=test.txt
Der Unterschied zwischen "old" und "normal" besteht lediglich in einem
zustzlichen "/" hinter dem Fragezeichen das Probleme bei der Anzeige
von pdf-Datein bei einigen Browsern umgehen soll.

rewrite:
http://www.server.de/studip/download/force_download/0/43dce79ba3ab55b906c59317b5e6cc03/test.txt
Der rewrite-Modus liefert eine URL die mit jedem Browser problemlos nutzbar ist.
Bentigt wird dazu das Apache-rewrite-Modul. Es wird mit einem
"RewriteEngine on" in der studip-httpd.conf eingeschaltet. Die weitere
Konfiguration in der studip-httpd.conf unterscheidet sich geringfgig jenachdem 
ob das Stud.IP-Verzeichnis direkt im Documentroot des Apache liegt oder ob es
per Alias-Anweisung eingebunden wird.

innerhalb DocumentRoot:

<Directory "/srv/www/htdocs/studip">

# fr rewrite wird die Option FollowSymLinks _oder_ SymLinksIfOwnerMatch bentigt ...

#Options SymLinksIfOwnerMatch
Options FollowSymLinks

RewriteEngine on
RewriteRule ^download/(normal|force_download|zip)/([0-46])/([^/]+)/(.+)$ sendfile.php?$1=1&type=$2&file_id=$3&file_name=$4 [L]
RewriteRule ^download/(normal|force_download|zip)/5/([^/]+)/([^/]+)/(.+)$ sendfile.php?$1=1&type=5&range_id=$2&list_id=$3&file_name=$4 [L]

...
</Directory>

per Alias:

Alias /abcd /srv/studip/htdocs

<Directory "/srv/studip/htdocs">

# fr rewrite wird die Option FollowSymLinks oder SymLinksIfOwnerMatch bentigt ...

#Options SymLinksIfOwnerMatch
Options SymLinksIfOwnerMatch

RewriteEngine on
RewriteBase /srv/studip/htdocs
RewriteRule ^download/(normal|force_download|zip)/([0-46])/([0-9a-f]+)/(.+)$ /abcd/sendfile.php?$1=1&type=$2&file_id=$3&file_name=$4 [L]
RewriteRule ^download/(normal|force_download|zip)/5/([^/]+)/([^/]+)/(.+)$ /abcd/sendfile.php?$1=1&type=5&range_id=$2&list_id=$3&file_name=$4 [L]

...
</Directory>

Die rewrite Regeln befinden sich bereits in der mitgelieferten
studip-httpd.conf, es mssen nur die Kommentarzeichen vor der gewnschten
Variante entfernt werden.

Plugin Schnittstelle:
Die PluginEngine lsst sich ber verschiedene Konfigurationsvariablen in der
local.inc anpassen. Zur Aktivierung der PluginEngine muss die Variable
$PLUGINS_ENABLE auf true gesetzt werden. Danach erscheint auf der Startseite des
root-Administrators der Meneintrag Verwaltung von Plugins.
In der Standardkonfiguration knnen hier nur Pluginpakete aus einem definierten
Verzeichnis auf dem Webserver in Stud.IP importiert werden. Dieses Verzeichnis
lsst sich ber die Variable $NEW_PLUGINS_PATH ndern. Hier muss ein absoluter
Pfad angegeben werden. Dieses Verzeichnis muss vom Webserver-Benutzer lesbar
sein.
ber die Variable $PLUGINS_UPLOAD_ENABLE lsst sich ein Upload-Formular
freischalten, so dass der root-Administrator Plugin-Pakete direkt per Upload in
das System laden kann. Sollte der root-Administratoren-Account jedoch gehackt
werden, so stellt dies eine nicht zu unterschtzende Sicherheitslcke dar, denn
einem Hacker werden hier weitreichende Mglichkeiten erffnet, indem nahezu
beliebiger Sourcecode in das System geladen werden kann.
Um auch bei aktiviertem Upload-Formular dennoch eine gewisse Sicherheit zu
erreichen, ist der Einsatz des php-Safemodes zu empfehlen. Ebenso sollte der
WebServer niemals mit dem Benutzer root gestartet werden. Der Einsatz einer
chroot-Umgebung fr den Webserver ist ratsam.
Plugins werden in der Standardkonfiguration in ein Verzeichnis plugins/packages
abgelegt, welches sich unterhalb des studip-htdocs-Verzeichnisses befindet.
Dieses Verzeichnis muss fr den Webserver-Nutzer schreibbar sein. Dem
Verzeichnis sollten die Rechte 755 eingerumt werden.


Weitere Module wie der Kalender, die Ressourcenverwaltung, das Wiki- oder die
Vote- und Evaluations-Module bentigen keine spezielle Konfiguration oder Zusatzsoftware.
 
2 Der erste Start von Stud.IP
-----------------------------
Unter http://localhost/studip sollte jetzt die Startseite von StudIP
erreichbar sein. Wenn Sie studip_root_user.sql importiert haben, ist 
ein root-Benutzer fr das Stud.IP System angelegt worden:
Benutzername: 	root@studip
Password: 	testing

Also einfach auf login, Benutzername und Passwort des root eingeben

Neue Nutzeraccounts knnen entwender ber die globale Nutzerverwaltung (Schlssel-
Symbol in der Kopfzeile des Systems) oder ber die Selbstregistrierung (wenn diese
in der local.inc aktiviert wurde) erstellt werden.

- The Stud.IP Crew <crew@studip.de> 2006

$Id: studip_installation_guide.txt,v 1.3 2006/03/24 08:40:29 anoack Exp $
