Installation des Kompetenz- Erfassungs- Notebooks unter Windows oder Linux Educational Design Bildung & Technologie GmbH v6.1 10.05.08 Inhalt 1. Einführung 2. Installation der Anwendung KEN unter Windows 2.1 Ruby installieren 2.2 RubyGems installieren 2.3 MySQL installieren 2.4 KEN installieren 2.5 Java installieren 2.6 Apache installieren 2.7 Einen Mongrel Cluster innerhalb des Apache Loadbalancers betreiben 3. Installation der Anwendung KEN unter Debian Linux 3.1 Installation der Komponenten 3.2 Ruby einrichten 3.3 Mysql einrichten 3.4 KEN installieren 3.5 Apache einrichten 3.6 Konfiguration des Mongrel Clusters 4. Initialisation des Mongrel Clusters bei Systemneustart 5. Datenbanksicherung 6. Standardnutzer 1. Einführung Im Folgenden beschreiben wir eine vollständige Einrichtung eines KEN-Webservers unter Windows und Linux. Bitte lesen Sie beide Teile des Dokumentes. Wir empfehlen Ihnen die Installtion unter Linux (Debian). Wir wünschen Ihnen bei der Installation viel Erfolg! 2. Installation der Anwendung KEN unter Windows 2.1 Ruby installieren 1. http://rubyforge.org/frs/download.php/18566/ruby186-25.exe oder eine andere, entsprechende Version herunterladen und installieren. 2. Bei den Installationsoptionen sollte "Enable RubyGems" ausgewählt werden. 2.2 RubyGems installieren Als nächstes werden die benötigten Module (Gems) installiert. RubyGems ist ein Repository für Rubypakete. KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 1/10
1. Vom Windowsmenü Ruby/RubyGems/RubyGems Package Manager" starten. 2. Ruby on Rails mit dem Befehl gem install rails --includedependencies --version 1.1.6 (ohne Umbruch) installieren. 3. Mongrel mit dem Befehl gem install mongrel installieren. Bitte wählen Sie die neuste win32 Version aus und installieren ebenfalls alle required dependencies. 4. Ferret mit dem Befehl gem install ferret installieren. Bitte wählen Sie die beste win32 Version aus und installieren ebenfalls alle required dependencies. 5. fastercsv mit dem Befehl gem install fastercsv installieren. 6. Ruby Treiber für die MySQL Datenbank installieren mit dem Befehl gem install mysql. Bitte wählen Sie die neuste win32 Version aus. 2.3 MySQL installieren Installieren Sie mindestens Version 4.1 1. Legen Sie bei der Installation einen root Benutzer an und notieren Sie sich das Passwort. 2. Legen Sie in MySQL eine Datenbank namens ken_production an. Sie können sich z.b. über das MySQL Kommandozeilenprogramm mysql, das sich im bin Ordner der MySQL Installation befindet bei der datenbank anmelden: mysql -u root -p und geben Sie das root Passwort ein. Auf der folgenden Befehlszeile geben Sie: create database ken_production; ein. 3. Importieren Sie die auf der CD mitgelieferte Datenbank, z.b. mittels dem mysql Kommandozeilenprogramm. Führen Sie dazu den folgenden Befehl in der Windows Kommandozeile aus: mysql ken_production u root p < C:\Pfad\zur\ken_db.sql 2.4 KEN installieren 1. Packen Sie das KEN Programmpaket an die von Ihnen gewählte Stelle aus, z.b. nach C:\KEN 2. Bearbeiten Sie die Datei config\database.example und speichern Sie diese als config\database.yml. Der Abschnitt production muss an Ihre Datenbank Einstellungen angepasst werden. 3. Benutzen Sie die RubyGems Package Manager Eingabeaufforderung um in das KEN Verzeichnis zu wechseln (cd) und geben Sie den Befehl Rake rebuild_ferret_index RAILS_ENV=production ein. 4. Testen Sie die Anwendung KEN, in dem Sie im RubyGems Package Manager den Befehl mongrel_rails start -e production -p 8000 eingeben. Öffnen Sie die Seite http://localhost:8000 in einem Webbrowser. KEN sollte jetzt laufen. 2.5 Java installieren Um den Lebenslauf und das Kompetenzportfolio exportieren zu können, muss die Java Runtime 1.6 installiert sein. Ken funktioniert auch mit der Java Runtime 1.5, dafür muss aber folgende java-datei neu kompiliert werden: <ken-dir>/jasper/src/xmljasperinterface.java. Diese Datei unter Einbindung aller in <ken-dir>/jasper/lib befindlichen.jar-dateien in den Klassenpfad neu kompilieren und nach <ken-dir>/jasper/bin/xmljasperinterface.class verschieben. KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 2/10
Beispiel: java -cp "../../jasper/bin :../../jasper/lib/bsh-1.3.0.jar :../../jasper/lib/cincom-jr-xmla.jar :../../jasper/lib/sqleonardo-2007.03.jar :../../jasper/lib/jta.jar :../../jasper/lib/jsmoothgen-ant- 0.9.7.jar :../../jasper/lib/barbecue-1.1.jar :../../jasper/lib/commons-collections-2.1.jar :../../jasper/lib/jakarta-bcel-20050813.jar :../../jasper/lib/poi-2.0-final-20040126.jar :../../jasper/lib/jr-bsh-compiler.jar :../../jasper/lib/commons-javaflow-20060411.jar :../../jasper/lib/ireport.jar :../../jasper/lib/jpa.jar :../../jasper/lib/commons-beanutils-1.7.jar :../../jasper/lib/commons-digester-1.7.jar :../../jasper/lib/servlet.jar :../../jasper/lib/jcommon- 1.0.0.jar :../../jasper/lib/xml-apis.jar :../../jasper/lib/groovy-all-1.0-beta-10.jar :../../jasper/lib/log4j-1.2.8.jar :../../jasper/lib/eigenbaseproperties.jar :../../jasper/lib/commons-logging-api-1.0.2.jar :../../jasper/lib/hsqldb-1.7.1.jar :../../jasper/lib/cglib- 2.1.jar :../../jasper/lib/jfreechart-1.0.0.jar :../../jasper/lib/itext-1.3.1.jar :../../jasper/lib/tinylaf.jar :../../jasper/lib/jasperbabylon- 1.0.0.jar :../../jasper/lib/eigenbase-resgen.jar :../../jasper/lib/ehcache-1.1.jar :../../jasper/lib/commonslogging-1.0.2.jar :../../jasper/lib/spring-hibernate3-2.0- m2.jar :../../jasper/lib/commons-dbcp-1.2.1.jar :../../jasper/lib/xalan.jar :../../jasper/lib/mysql-connectorjava-3.1.11-bin.jar :../../jasper/lib/microba-0.4.1-bin.jar :../../jasper/lib/dom4j-1.6.jar :../../jasper/lib/saaj-api- 1.3.jar :../../jasper/lib/jxl-2.6.jar :../../jasper/lib/antlr- 2.7.5.jar :../../jasper/lib/eigenbase-xom.jar :../../jasper/lib/javacup.jar :../../jasper/lib/jcmdline- 1.0.2.jar :../../jasper/lib/nsisant-1.1.jar :../../jasper/lib/flexdock-0.4.1.jar :../../jasper/lib/rex- 20070125.jar :../../jasper/lib/asm.jar :../../jasper/lib/pngencoder-1.5.jar :../../jasper/lib/commons-pool-1.3.jar :../../jasper/lib/spring-context-2.0-m2.jar :../../jasper/lib/jdt-compiler-3.1.1.jar :../../jasper/lib/mondrian-2.0.1.jar :../../jasper/lib/jasperreports-1.3.2.jar :../../jasper/lib/asm-attrs.jar :../../jasper/lib/toniclf.jar :../../jasper/lib/jasperreports-extensions-1.3.1.jar :../../jasper/lib/xercesimpl.jar :../../jasper/lib/spring-2.0- m2.jar :../../jasper/lib/hibernate3.jar :../../jasper/lib/looks-2.0-rc.jar" XmlJasperInterface.java 2.6 Apache installieren Zurzeit läuft Mongrel auf Port 8000. Wir installieren Apache standardmäßig auf Port 80. Apache bearbeitet alle Resourcenanfragen selbst und leitet nur die CGI Anfragen an Mongrel weiter. KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 3/10
1. Installieren Sie Apache 2.2 2. Achten Sie darauf dass in der httpd.conf die Zeilen LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule rewrite_module modules/mod_rewrite.so einkommentiert sind. 3. Fügen Sie folgende Virtualhost Konfiguration am Ende Ihrer httpd.conf ein. Achten Sie darauf, dass ihre.domain.de Ihrer Domain entsprechen muss und dass der DocumentRoot angepasst wird: KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 4/10
<VirtualHost *:80> ServerName ihre.domain.de DocumentRoot C:\dokumente\projects\ken\public ProxyPass /images! ProxyPass /stylesheets! ProxyPass /javascripts! ProxyPass /resources! ProxyPass / http://ihre.domain.de:8000/ ProxyPassReverse / http://ihre.domain.de:8000 ProxyPreserveHost on <Directory "C:\dokumente\projects\ken\public"> Options FollowSymLinks Order allow,deny allow from all </Directory> </VirtualHost> starten Sie Apache neu und öffnen Sie http://ihre.domain.de in einem Browser. 2.7 Einen Mongrel Cluster innerhalb des Apache Loadbalancers betreiben Um mehrere gleichzeitige Requests besser bearbeiten zu können, empfiehlt sich der Einsatz eines Mongrel Clusters. 1. Zuerst installieren wir das Gem mongrel_service vom RubyGems Package Manager : gem install mongrel_service 2. Mongrel als Windows Service einrichten. Dabei können beliebig viele Mongrel Server installiert werden: mongrel_rails service::install -N ken_c1 -c C:\dokumente\projects\ken -p 8000 -e production (ohne Zeilenumbruch) mongrel_rails service::install -N ken_c2 -c C:\dokumente\projects\ken -p 8001 -e production (ohne Zeilenumbruch) etc... 3. in Systemsteuerung/Verwaltung/Dienste die Dienste konfigurieren und starten. 4. Kommentieren Sie in der httpd.conf folgende Zeile ein: LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 5. Erweitern Sie die Vhost Konfiguration, damit diese wie folgt aussieht. Fügen Sie in den Proxy Balancer alle von Ihnen erstellten Mongrel Server ein: KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 5/10
<VirtualHost *> ServerName ihre.domain.de DocumentRoot C:\dokumente\projects\ken\public ProxyPass /images! ProxyPass /stylesheets! ProxyPass /javascripts! ProxyPass /resources! <Directory "C:\dokumente\projects\ken\public"> Options FollowSymLinks Order allow,deny allow from all </Directory> RewriteEngine On ProxyPass / balancer://mongrel_cluster/ ProxyPassReverse / balancer://mongrel_cluster/ </VirtualHost> <Proxy balancer://mongrel_cluster> BalancerMember http://127.0.0.1:8000 BalancerMember http://127.0.0.1:8001 #BalancerMember http://127.0.0.1:8002 #BalancerMember http://127.0.0.1:8003 </Proxy> 3. Installation der Anwendung KEN unter Debian Linux Es folgen Installationshinweise zum Betrieb der Anwendung unter Debian Linux. Sie wurde ebenfalls auf der auf Debian basierenden Ubuntu Distribution getestet. Wir empfehlen Debian gegenüber anderen Distributionen wegen seiner hohen Stabilität und seiner Optimierung als Server Betriebssystem. Auf gleicher Hardware läuft die Anwendung KEN unter Linux etwa um 50 % schneller als unter Windows. Wenn Sie KEN auf Linux installieren wollen, so lesen Sie sich bitte auch die Installationsanleitung für Windows durch, da sie schrittweise an die Vollinstallation heranführt und ein Verständnis der eingesetzten Komponenten zu vermitteln sucht. Wir gehen davon aus, dass sie eine moderne Distribution verwenden, die nicht vor 2007 erschienen ist, damit alle benötigten Pakete zur Verfügung stehen. Bitte führen Sie alle Terminal Befehle mit Root Rechten aus. 3.1 Installation der Komponenten Bitte installieren Sie die folgenden Pakete. Wenn Sie Ubuntu benutzen, können Sie den Packetmanager Synaptic verwenden, andernfalls leistet dselect gute Dienste. Sie können die Programme aber auch direkt im Terminal installieren: KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 6/10
1. Make Umgebung apt-get install build-essential 2. Ruby 1.8 mit RubyGems apt-get install ruby ruby1.8-dev rubygems irb rake Prüfen Sie ob sich rake in Ihrem Path befindet (type rake). Wenn dies nicht der Fall sein sollte, legen Sie einen Symlink auf rake in Ihrem Path an (Wahrscheinlich liegt es unter /var/lib/gems/1.8/bin/rake): ln -s /var/lib/gems/1.8/bin/rake /usr/bin/rake 3. Mysql mindestens Version 4.1 apt-get install mysql-server mysql-common mysql-client 4. Apache Server, mindestens Version 2.2 apt-get install apache2 5. Java mindestens Version 5.0 apt-get install sun-java5-bin sun-java5-jre sun-java5-jdk Wenn das System Java nicht installieren kann, so muss es für apt-get freigeschaltet werden. Öffnen Sie die Datei /etc/apt/sources.list und fügen Sie an alle Zeilen die mit main enden non-free contrib an. 3.2 Ruby einrichten Neben den Standard Ruby-Bibliotheken werden Zusatzbibliotheken benötigt, die Sie über RubyGems installieren. Öffnen Sie ein Terminal und geben Sie folgende Befehle ein (jede Zeile mit Return bestätigen und jeweils die 'Dependencies' mitinstallieren. Sollten verschiedenen Versionen einer Bibliothek zur Auswahl stehen, jeweils die aktuelleste Version für die Linux-Plattform auswählen): gem install rails --version 1.1.6 gem install ferret gem install mongrel gem install fastercsv gem install mongrel_cluster Prüfen Sie ob sich mongrel_rails auf Ihrem Pfad befindet. Tippen Sie dazu bitte im Terminal type mongrel_rails ein. Wenn mongrel_rails nicht gefunden wurde, müssen Sie es im Dateisystem suchen. Wahrscheinlich liegt es unter /var/lib/gems/1.8/bin/mongrel_rails. Richten Sie einen Verweis an, so dass mongrel_rails im Dateisystem gefunden wird (eine Zeile, ohne Umbrüche): ln -s /var/lib/gems/1.8/bin/mongrel_rails /usr/bin/mongrel_rails 3.3 Mysql einrichten Legen Sie eine Datenbank mit dem Namen 'ken_production' an. Öffnen Sie dazu ein Terminal und geben sie folgende Befehle ein (jede Zeile mit Enter bestätigen): mysql -u root -e 'Create database ken_production' mysql ken_production -u root < /pfad/zu/ken_db.sql 3.4 KEN installieren 1. Kopieren Sie die Anwendungsdaten von der CD an die von Ihnen gewünschte Stelle (z.b. /var/webapps/ken) KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 7/10
Bearbeiten Sie die Datei config/database.example im KEN-Verzeichnis und speichern Sie diese als config/database.yml. Der Abschnitt production muss an Ihre Datenbank Einstellungen angepasst werden (siehe Beispielkonfiguration unten). Prüfen Sie, ob sich die Datei mysqd.sock unter /tmp/mysqld.sock befindet. Wenn nicht liegt sie wahrscheinlich unter /var/run/mysqld/mysqld.sock. In diesem Fall fügen Sie folgende Zeile an die Konfiguration im Abschnitt production an: socket: /var/run/mysqld/mysqld.sock 2. Öffnen Sie das Terminal und navigieren Sie in das KEN Verzeichnis, z.b. mit cd /var/webapps/ken 3. Geben Sie rake rebuild_ferret_index RAILS_ENV=production ein. 4. Achten Sie darauf, dass Sie sich noch immer im KEN Wurzelverzeichnis befinden und geben chown -R www-data:www-data * ein, um dem Webserver Lese- und Schreibrechte auf das KEN-Verzeichnis zu gewähren. 3.5 Apache einrichten Legen Sie in /etc/apache2/sites-available eine Datei namens ken an und kopieren Sie die Beispielkonfiguration (siehe unter 2.7 in der Windowsanleitung) hinein und passen Sie den Pfad C:\dokumente\projects\ken\public und den ServerName ihre Bedürfnisse an (siehe unter 3.5). Führen Sie anschliessend in einem Terminal folgende Befehle aus: a2enmod proxy a2enmod proxy_http a2enmod proxy_connect a2enmod proxy_balancer a2enmod rewrite a2ensite ken Bearbeiten Sie die Datei /etc/apache2/mods-available/proxy.conf und ersetzen den Eintrag deny from all mit allow from all /etc/init.d/apache2 restart 3.6 Konfiguration des Mongrel Clusters Um den Mongrel-Cluster zu konfigurieren, muss im Terminal folgender Befehl eingeben werden. Es wird dann ein Cluster mit N Servern installiert, in unserem Beispiel also 4. Diese sind auf Ports, beginnend mit p verfügbar, in unserem Beispiel also von 8000 bis 8003 (vier Server). Achten Sie darauf, dass Sie sich im KEN Wurzelverzeichnis befinden. (eine Zeile, ohne Umbrüche): mongrel_rails cluster::configure -e production -p 8000 -N 2 -c /var/webapps/ken -a 127.0.0.1 --user www-data --group www-data Führen Sie noch die Befehle mkdir tmp/pids chown www-data:www-data tmp/pids aus Der Mongrel Cluster kann mit mongrel_rails cluster::start gestartet und mittels mongrel_rails cluster::stop angehalten werden. Sie können beliebig viele Mongrel Server im Cluster betreiben. Passen Sie dazu im Befehl mongrel_rails cluster::configure... entsprechend den Paramter N an. Außerdem müssen diese in der Datei in /etc/apache2/sites-available/ken im Bereich <Proxy Balancer> konfiguriert werden. KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 8/10
4. Initialisation des Mongrel Clusters bei Systemneustart Folgen Sie bitte den folgenden Schritten, wenn der Mongrel Cluster nach einem Systemstart automatisch neugestartet werden soll. Legen Sie mit mkdir /etc/mongrel_cluster ein neues Verzeichnis an. Legen Sie nun einen symbolischen Link auf die generierte Mongrel Konfigurationsdatei an: ln s /var/webapps/ken/config/mongrel_cluster.yml /etc/mongrel_cluster/ken.yml Kopieren Sie das Initialisationsskript: cp /var/lib/gems/1.8/gems/mongrel_cluster- 1.0.3/resources/mongrel_cluster /etc/init.d/ Bitte beachten Sie, dass die Versionsnummer im mongrel_cluster Verzeichnisnamen auf Ihrem System wahrscheinlich eine andere ist. Passen Sie den Pfad daher entsprechend an Ihr System an. Schließlich markieren Sie diese Datei als ausführbar: chmod +x /etc/init.d/mongrel_cluster Damit der Mongrel Cluster beim Systemstart gestartet wird, tragen Sie ihn in den Runlevel ein: /usr/sbin/update-rc.d -f mongrel_cluster defaults 5. Datenbanksicherung Es empfiehlt sich eine regelmäßige Datenbanksicherung vorzunehmen. Geben Sie in die Befehlszeile mysqldump ken_production -u root p Für WIN: C:\Pfad\zum\gewünschten\backup.sql für LINUX: /Pfad/zum/gewünschten/backup.sql ein. Als nächstes geben Sie das root Passwort der Datenbank ein. Die somit erzeugte Datei kann im Falle eines Datenverlustes, wie in den Absätzen 2.3 und 3.3 beschrieben, wieder in die Datenbank eingepflegt werden. 6. Standardnutzer KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 9/10
Nach dem Aufruf der Anwendung im Web-Browser können Sie sich mit dem Default-User anmelden und weitere Nutzer anlegen: Benutzername: administrator Kennwort: administrator KEN_InstallationsAnleitung_Win-Linux_v63.doc Seite 10/10