Installationsanleitung Lecture2Go Mediendistributionsportal 1. Systemvoraussetzungen 2. Datenbankserver 3. Portalserver 4. Streamingserver 4.1. Verknüpfen vom Wowza mit Lecture2Go 5. Downloadserver Dienstag, 18. Februar 2014 [email protected] 2 2 3 7 7 9 1 1. Systemvoraussetzungen Im Folgenden wird eine Beispielinstallation aufgeführt. Eine ähnliche Implementierung hat sich seit 2010 an der Universität Hamburg bewährt. • • • Webserver o Betriebssystem SUSE 11 (x86_64) o CPU – 16 x Intel(R) Xeon(R) E5640 @ 2.67 GHz o Physikalischer Arbeitsspeicher (RAM) – 8 GB o Festplattenkapazität – 500 GB Streamingserver o Betriebssystem SUSE 11 (x86_64) o CPU – 8 x Intel(R) Xeon(R) E5430 @ 2.66 GHz o Physikalischer Arbeitsspeicher (RAM) – 8 GB o Festplattenkapazität – 4 TB. Mit dieser Speicherkapazität kann eine große Menge von Videos gehostet werden. Soll eine neunzigminütige Vorlesungsaufzeichnung die Datenmenge von 600 MB nicht übersteigen, so würden 4 TB Speicher für ca. 6500 Videos ausreichen. o LAN – 1Gb. Mit dieser Bandbreite und durchschnittlicher BitÜbertragungsrate von 500 Kb/sec lassen sich ca. 2000 simultane Streams realisieren. Downloadserver o Betriebssystem SUSE 11 (x86_64) o CPU – 16 x Intel(R) Xeon(R) E5640 @ 2.67 GHz o Physikalischer Arbeitsspeicher (RAM) – 8 GB o Festplattenkapazität – 500 GB o Netzwerkkarte – 1 Gb 2. Datenbankserver Als Datenbank für die Installation soll MySQL eingesetzt werden. An dieser Stelle wird keine Installationsanleitung für MySQL angeboten. Auf der offiziellen Internetseite von MySQL sowie auf zahlreichen Webseiten können Sie sehr gute Installationsanleitungen zum Thema finden. Nachdem der Server installiert wurde, erstellen Sie ein Benutzerkonto, mit dessen Login-Daten auf MySQL zugegriffen werden kann. Im Abschnitt 3 werden diese Zugangsdaten, Login-Name (dbuser) und das zugehörige Passwort (dbpassword), benötigt. Für die Administration von MySQL-Datenbankservern eignen sich verschiedene Tools. Wir empfehlen die offiziellen MySQL-Administrationswerkzeuge, die auf der Softwareherstellerwebseite http://dev.mysql.com/downloads/gui-tools/5.0.html zu finden sind. Dienstag, 18. Februar 2014 [email protected] 2 3. Portalserver Für diese Installation müssen Sie sich als Root einloggen. Erstellen Sie das Verzeichnis /usr/local/l2go (chmod 755 /usr/local/l2go für Mac) und entpacken Sie anschließend die heruntergeladene Datei portal-6.1.1-ce-ga2-master.zip dorthin. Benennen Sie das entpackte Verzeichnis in portal-6.1.1-ce-ga2 um. Durch das Entpacken entsteht folgender Dateipfad /usr/local/l2go/portal-6.1.1-ce-ga2/. In diesem Verzeichnis befindet sich die Datei install.sql. Diese sql-Datei beinhaltet alle notwendigen Tabellen und Einstellungen für die Integration der Lecture2Go-Plugins in Liferay. Importieren Sie die Datei install.sql in den installierten MySQL-Datenbankserver (Abschnitt 2). Anschließend kann die Portalsoftware für die Installation vorbereitet werden. Führen Sie folgende Schritte durch und bearbeiten Sie die Konfigurationsdateien portalsetup-wizard.properties mit einem beliebigen Editor: your-lecture2go-server:~ # cd /usr/local/l2go/portal-6.1.1-ce-ga2/ your-lecture2go-server:/.../portal-6.1.1-ce-ga2/ # joe portal-setup-wizard.properties Hier tragen Sie das Installationsverzeichnis wie folgt ein: liferay.home=/usr/local/l2go/portal-6.1.1-ce-ga2 Als Nächstes bearbeiten Sie die Datei portal-ext.properties - ebenfalls mit einem beliebigen Editor: your-lecture2go-server:~ # cd /usr/local/l2go/portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ your-lecture2go-server:/.../webapps/ # joe ROOT/WEB-INF/classes/portal-ext.properties Konfigurieren Sie den Datenbankzugriff, indem Sie die folgende Zeilen im Bereich "Database Properties" anpassen: ############ Database Properties ############ jdbc.default.driverClassName=com.mysql.jdbc.Driver jdbc.default.url=jdbc:mysql://mysql.server.com/lportal?useUnicode=true&characterEncoding=U TF-8&useFastDateParsing=false jdbc.default.username=dbuser jdbc.default.password=dbpassword • • • jdbc.default.url – Ersetzen Sie bitte diesen String "mysql.server.com" innerhalb dieser Zeile mit der URL Ihres Datenbankservers. jdbc.default.username – Hier Benutzernamen eingeben. jdbc.default.password – Hier Datenbankpasswort eingeben. Im Bereich "Lecture2Go Properties" passen Sie die folgenden Parameter an: ############ Lecture2Go Properties ############ lecture2go.web.root=http://mywebserver.de lecture2go.web.home=${lecture2go.web.root} Dienstag, 18. Februar 2014 [email protected] 3 lecture2go.downloadserver.root=http://mydownloadserver.de lecture2go.media.repository=/l2gomedia lecture2go.images.system.path=${lecture2go.media.repository}/images lecture2go.httpstreaming.video.repository=${lecture2go.media.repository}/vh_000 lecture2go.security.folder=/security lecture2go.ffmpeg.bin=/usr/local/bin/ffmpeg lecture2go.shell.bin=/bin/bash [email protected] [email protected] Die wichtigsten Einstellungen für die Installation der Lecture2Go-Plugins sind mit dem Präfix lecture2go.* versehen. • • • • • • lecture2go.web.root – Hier geben Sie bitte die Webadresse des Lecture2GoServers (ggf. Port z.B. http://mywebserver.de:8080) ein. lecture2go.web.home – Dieses Parameter muss nicht geändert werden. lecture2go.downloadserver.root – Wir empfehlen für eine Lastverteilung einen separaten Downloadserver einzusetzen. Bitte hier die URL-Adresse des Servers eingeben. Alternativ kann der Portalserver als Downloadserver betrieben werden (lecture2go.downloadserver.root=${lecture2go.web.root}). lecture2go.media.repository – Geben Sie hier den Systempfad ein, unter dem die Videoinhalte nach dem Upload gespeichert werden sollen. Der DefaultParameter ist /l2gomedia. lecture2go.response.email.address – E-Mail Adresse des Systemadministrators lecture2go.noresponse.email.address – Autoresponder E-Mail Adresse Die nachfolgenden Parameter sollen nicht verändert werden! • • • lecture2go.images.system.path – Hier werden alle erzeugten Bilder gespeichert. lecture2go.httpstreaming.video.repository – Das ist ein sehr wichtiges Verzeichnis, da der Streamingserver darauf zugreift, um die Medieninhalte via HTTP-Streaming zu liefern. lecture2go.security.folder – Speicherort für alle Htaccess-Schutzdateien. Um die letzten zwei Parameter einzutragen, führen Sie folgende Befehle aus und tragen Sie die Antworten wie folgt bei den "Lecture2Go Properties" ein your-lecture2go-server:~ # which ffmpeg /usr/local/bin/ffmpeg • lecture2go.ffmpeg.bin - /usr/local/bin/ffmpeg your-lecture2go-server:~ # which bash /bin/bash • lecture2go.shell.bin - /bin/bash Falls auf Ihrem Linux-System die FFMPEG – Bibliothek noch nicht vorhanden ist, müssen Sie diese nachinstallieren (http://www.ffmpeg.org/)! Nachdem die Konfigurationsdatei mit den notwendigen Parametern betankt wurde und der MySQLDienstag, 18. Februar 2014 [email protected] 4 Server erreichbar ist, fahren Sie das Portal hoch. Nach der Änderung der Eigenschaften gehen Sie wie folgt vor: your-lecture2go-server:~ # cd /usr/local/l2go/portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/ your-lecture2go-server:/usr/local/l2go/portal-6.1.1-ce-ga2/tomcat-7.0.27/bin # chmod 755 * your-lecture2go-server:/usr/local/l2go/portal-6.1.1-ce-ga2/tomcat-7.0.27/bin # ./startup.sh Vorausgesetzt Sie haben alle erforderlichen Vorbereitungen getroffen, wird die Portalsoftware erfolgreich gestartet. Die Serverlogs findet man unter /usr/local/l2go/portal-6.1.1-ce-ga2/tomcat7.0.27/logs. Hier soll der Startvorgang mit einer ähnlichen Logausgabe abschließen: your-lecture2go-server:~ # tail -f /usr/local/l2go/portal-6.1.1-ce-ga2/tomcat7.0.27/logs/catalina.out INFO: Starting Coyote HTTP/1.1 on http-80 Jul 25, 2012 12:46:01 PM org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 Jul 25, 2012 12:46:01 PM org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/177 config=null Jul 25, 2012 12:46:03 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 40776 ms 12:46:49,528 INFO [PluginPackageUtil:1148] Reloading repositories Nun müssen einige Konfigurationen im Lecture2Go-Portal vorgenommen werden. Dafür rufen Sie lokal auf dem Server einen Webbrowser auf: your-lecture2go-server:~ # firefox localhost Loggen Sie sich unter dem Menüpunkt „Anmelden" (oben rechts unter dem Lecture2Go-Logo) als Superuser ein. Die Login-Daten sind: E-Mail: [email protected] Password: test Dienstag, 18. Februar 2014 [email protected] 5 Nach dem Login klicken Sie das "Kontrollbereich" (oben rechts unter dem Lecture2Go-Logo) an und wählen Sie dort das Hauptmenü "Lecture2Go" -> "Website-Einstellungen" -> "Webseite URL" aus. Tragen Sie dort in das Feld "Öffentliche Seiten" den Domainnamen Ihrer Lecture2Go-Installation ein (meine-unidomain.de). Eine weitere Konfiguration muss im Hauptmenü "Portal" -> "Einstellungen" vorgenommen werden. Tragen Sie dort die einzelnen Parameter ein, wie auf dem nachfolgendem Bild gezeigt. • • • • Name: my-uni-domain.com - Hier ist der Domainname der Lecture2GoWebseite (obere Instanz) einzutragen. Virtual Host: localhost - Dieses Parameter kann unverändert bleiben. In der Regel wird hier der Domainname eingetragen, der auch für die Netzwerkkonfiguration verwendet wird. Wenn dieser Domainname aufgerufen wird, leitet Liferay die Anfrage zu der oberen Instanz um. Output URL: /web/vod - Definiert den Startpunkt der Seitenstruktur. Wenn man z.B. die URL http://meine-uni-domain.de/web/vod aufrufen würde, würde man zu der Startseite gelangen, die in der Seitenhierarchie an oberster Stelle steht. Mail Domain: meine-unimail-domain.de - Liferay verwendet diese Emaildomain, um Nachrichten vom Portal aus zu versenden. Dienstag, 18. Februar 2014 [email protected] 6 Nachdem Sie diese Konfigurationen durchgeführt haben, kann die neue Portalinstallation von Lecture2Go unter der Web Adresse http://meine-uni-domain.de erreicht werden. 4. Streamingserver Der Streamingserver ist eine sehr wichtige Komponente. Erst mit einer laufenden Implementierung des Streamingservers sind die „schönsten" Lecture2Go-PortalFeatures (Kapitelmarken, manuelle Segmentierung durch Produzenten oder Studierende) zu genießen. An dieser Stelle ist es wichtig zu erwähnen, dass der Server für eine bessere Lastverteilung auf einer separaten Maschine installiert werden sollte. Die Streaming-Software Wowza Server ist sehr leistungsfähig. Unserer Erfahrung nach ist eine Lizenz ausreichend, um eine Universität von der Größe der Universität Hamburg zu bedienen. Im Folgenden wird eine Kurzanleitung zur Installation gegeben. Für weiterführende technische Informationen und Konfigurationsmöglichkeiten wird an dieser Stelle auf die offizielle Dokumentation des Softwareherstellers verwiesen. Laden Sie zuerst die aktuelle Wowza Server-Version herunter: your-lecture2go-streamer:~ # wget http://www.wowza.com/downloads/WowzaStreamingEngine-4-0-0/WowzaStreamingEngine4.0.0.tar Führen Sie folgende Befehle aus: your-lecture2go-streamer:~ # sudo chmod +x WowzaStreamingEngine-4.0.0.tar.bin your-lecture2go-streamer:~ # sudo ./WowzaStreamingEngine-4.0.0.tar.bin Nach erfolgreicher Installation muss der Lizenzschlüssel eingetragen werden. In der ersten Zeit können Sie eine kostenlose Lizenz von Wowza bekommen und die Software testen. Nachdem die Software registriert wurde, können Sie mit der Konfiguration fortfahren (Abschnitt 4.1). 4.1. Verknüpfen vom Wowza mit Lecture2Go In diesem Abschnitt geht es um die Verknüpfung der Lecture2Go-Medien-Repository (Speicherort aller Mediendateien) mit dem Streaming-Server. Damit die hochgeladenen Videoinhalte auf dem Lecture2Go-Portal vom StreamingServer gefunden werden können, müssen einige Einstellungen im Verzeichnis /usr/local/WowzaStreamingEngine/conf vorgenommen werden. Dienstag, 18. Februar 2014 [email protected] 7 • VHost.xml – An dieser Stelle konfigurieren Sie die Portnummer des Servers. Da der Server über das HTTP-Protokoll erreichbar sein muss, ändern Sie die Portnummer auf 80 (ca. Zeile 10). <!-- 80: HTTP, RTMPT --> <!-- 554: RTSP --> <Port>80</Port> • Application.xml – In dieser Datei wird die Medien-Repository konfiguriert, auf die der Server zugreift. <Streams> <StreamType>default</StreamType> <StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir> In dem Knoten <StorageDir></StorageDir> wird die Medien-Repository des Servers festgelegt. Der Default-Wert wird nicht verändert und einfach das Verzeichnis ${com.wowza.wms.context.VHostConfigHome}/content mit einem symbolischen Link ersetzt, der auf die Lecture2Go Medien-Repository verweist. Im Abschnitt 3 wurde bereits in der Datei portal-ext.properties das Parameter lecture2go.httpstreaming.video.repository festgelegt. Der Wert dieses Parameters /l2gomedia/vh_000/ ist die zentrale Lecture2Go Medien-Repository und wird nun bei der Verknüpfung mit dem Streaming-Server benötigt. Hierfür bitte folgende Befehle ausführen: your-lecture2go-streamer:~ # cd /usr/local/WowzaStreamingEngine your-lecture2go-streamer:/usr/local/WowzaStreamingEngine # rm –r content your-lecture2go-streamer:/usr/local/WowzaStreamingEngine # ln -s /l2gomedia/vh_000/ content Als letzter Schritt muss der Server im Lecture2Go-Portal registriert werden! Jeder Einrichtung kann ein Streamingserver zugewiesen werden. Loggen Sie sich als Lecture2Go-Administrator ein ([email protected]). Im Menü "Mein L2Go" -> "Administration von Streamern" kann ein neuer Streamingserver eingetragen oder ein vorhandener Server bearbeitet werden. Dienstag, 18. Februar 2014 [email protected] 8 Ersetzen Sie den vorhandenen Beispiel-Servernamen www.mystreamingserver.com mit dem Domainnamen oder mit der IP-Adresse ihrer neuen Wowza-ServerInstallation (z.B. www.mywowzastreamer.com). Klicken Sie dann auf den Button „Bearbeiten". Anschließend rufen Sie das Menü „Administration von Einrichtungen" auf. In der Liste der Einrichtungen kann man sehen, dass der neu eingetragene Streamingserver der Einrichtung „Fakultät 1" zugeordnet ist. Alle Medieninhalte, die zu dieser Einrichtung gehören, werden nun mit dem Streaming-Server www.mywowzastreamer.com gestreamt. 5. Downloadserver Die Medieninhalte landen nach dem Upload im Verzeichnis /l2gomedia (s.a. Abschnitt 3, ggf. geändertes Verzeichnis). Um diese für den Downloadserver sichtbar zu machen, muss dieses Verzeichnis z.B. mittels NFS importiert und ebenfalls unter /l2gomedia gemountet werden. Installieren und aktivieren Sie auf Ihrem Linux-System den Tomcat-Webserver. Anschließend muss der Lecture2Go-Download-Servlet in das Webapps-Verzeichnis des Tomcat-Servers des Downloadservers übertragen werden. Der Servlet befindet sich im Webapps-Verzeichnis des Lecture2Go-Portalservers (s.a. Abschnitt 3). Kopieren Sie das Verzeichnis z.B. mittels des SCP-Befehls: your-lecture2go-portalserver:~ # scp -r -P <Portnummer> /usr/local/l2go/portal-6.1.1-cega2/webapps/download username@your-lecture2go-downloadserver:/tomcat-base/webapps/ Um den Servlet für den Datenbankzugriff zu konfigurieren, tragen Sie in der Datei /tomcat-base/webapps/download/WEB-INF/web.xml folgende Parameter ein (s.a. nächste Abbildung): • • • • vRep = /l2gomedia (falls geändert, bitte entsprechendes Verzeichnis angeben) driverUrl = jdbc:mysql://datenbankserver.de/lportal?useUnicode=true&amp;characterEncoding=UTF8&amp;useFastDateParsing=false dbUsername = DbUsername dbPassword = DbServerPassword Damit die durchgeführten Konfigurationen wirksam werden, starten Sie den TomcatServer neu. Dienstag, 18. Februar 2014 [email protected] 9 Damit der Download-Servlet auch über Port 80 erreichbar ist, schalten Sie den Apache2 als Proxy vor die Tomcat-Applikation vor. Aktivieren Sie, z.B. über YaST, für den Apache2-Server folgende Module (Netzwerkdienste – HTTP-Server): • • • • • • proxy_ajp proxy_balancer proxy proxy_connect proxy_ftp proxy_http In der /etc/apache2/httpd.conf tragen Sie am Ende der Konfigurationsdatei die folgende Zeile ein: ProxyPass /download ajp://lecture2go-download-server-name.de:8009/download Starten Sie den Apache2 neu. Im htdocs des Apache2-Servers legen Sie folgende symbolische Links an: Dienstag, 18. Februar 2014 [email protected] 10 lecture2go-download-server:~ # cd /srv/www/htdocs lecture2go-download-server:/srv/www/htdocs # ln -s /l2gomedia/abo/ abo lecture2go-download-server:/srv/www/htdocs # ln -s /l2gomedia/vh_001/ vh_001 Alle Medien-Dateien, die unterhalb des Verzeichnisses /l2gomedia/vh_001/ gespeichert werden, wären theoretisch nach außen sichtbar. Dies bezieht sich aber nur auf Inhalte, die im Lecture2Go Video-Portal zum Download freigegeben wurden. Medien, die nicht heruntergeladen werden dürfen, werden per .htaccess geschützt. Dienstag, 18. Februar 2014 [email protected] 11