Apache OpenMeetings auf CentOS 7 installieren
Apache OpenMeetings ist eine Open-Source-Plattform für Webkonferenzen. Die Anwendung wurde in Java entwickelt und unterstützt verschiedene Datenbankserver. Zu den Hauptfunktionen gehören Audio- und Videokommunikation, Bildschirmfreigabe, Dateiverwaltung, Benutzerverwaltung, private Nachrichten, ein integriertes Adressbuch, ein Kalender zur Terminplanung und vieles mehr. Zudem besteht die Möglichkeit, Sitzungen aufzuzeichnen. OpenMeetings bietet SOAP/REST-APIs sowie zahlreiche Plugins zur Integration mit Plattformen wie Moodle, Jira, Joomla, Confluence und weiteren.
Voraussetzungen
- Ein CentOS-7-Server mit mindestens 4 GB RAM.
- Zugriff auf ein Benutzerkonto mit Sudo-Rechten.
- Eine Domain, die korrekt auf den Server zeigt.
In dieser Anleitung steht 192.168.1.1 für die öffentliche IP-Adresse des Servers und meetings.example.com für die konfigurierte Domain. Ersetze diese Angaben entsprechend durch deine tatsächlichen Werte.
Aktualisiere zuerst dein System gemäß der Anleitung „Wie man CentOS 7 aktualisiert“. Nach erfolgreichem Update geht es mit der Installation von Java weiter.
Java installieren
Da OpenMeetings auf Java basiert, wird eine Java Runtime Environment (JRE) benötigt. Lade zunächst das neueste Oracle SE JDK 8 RPM-Paket herunter, welches sowohl JRE als auch JDK enthält.
wget --header 'Cookie: oraclelicense=a' http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm
Installiere anschließend das heruntergeladene RPM-Paket:
sudo rpm -Uvh jdk-8u161-linux-x64.rpm
Nach erfolgreicher Installation überprüfe die installierte Java-Version:
java -version
Die Ausgabe sollte etwa so aussehen:
[user@centron~]$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
Bevor es weitergeht, müssen die Umgebungsvariablen JAVA_HOME und JRE_HOME eingerichtet werden. Bestimme zunächst den absoluten Pfad der Java-Binärdatei:
readlink -f $(which java)
Die Ausgabe sollte ähnlich wie folgt aussehen:
[user@centron~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_161/jre/bin/java
Lege anschließend die Variablen JAVA_HOME und JRE_HOME entsprechend fest:
echo "export JAVA_HOME=/usr/java/jdk1.8.0_161" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_161/jre" >> ~/.bash_profile
Aktiviere das Profil, damit die Änderungen wirksam werden:
source ~/.bash_profile
Überprüfe abschließend die Umgebungsvariable JAVA_HOME:
[user@centron~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_161
Benötigte Abhängigkeiten installieren
Starte die Installation, indem du die Bibliotheken ImageMagick und GhostScript einrichtest:
sudo yum -y install epel-release
sudo yum -y install ImageMagick ghostscript
ImageMagick ermöglicht das Hochladen und Einfügen von Bildern auf dem Whiteboard, während GhostScript das Hochladen von PDF-Dateien unterstützt.
Nach der Installation überprüfe die Versionen, um sicherzustellen, dass beide Programme korrekt installiert wurden:
[user@centron~]$ identify -version
Version: ImageMagick 6.7.8-9 2016-06-16 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
[user@centron~]$ ghostscript -v
GPL Ghostscript 9.07 (2013-02-14)
Copyright (C) 2012 Artifex Software, Inc. All rights reserved.
Außerdem muss entweder Apache OpenOffice oder LibreOffice installiert werden, um Dokumente wie .doc, .docx, .ppt, .pptx und .xls in OpenMeetings zu importieren. In diesem Leitfaden wird Apache OpenOffice verwendet.
Wechsle in das temporäre Verzeichnis und lade das Apache OpenOffice RPM-Paket herunter:
cd /tmp
wget https://downloads.sourceforge.net/project/openofficeorg.mirror/4.1.5/binaries/en-US/Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_en-US.tar.gz
Entpacke das heruntergeladene Archiv und installiere alle enthaltenen RPM-Pakete:
tar xf Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_en-US.tar.gz
cd en-US/RPMS
sudo rpm -Uvh *.rpm
sudo rpm -Uvh desktop-integration/openoffice4.1.5-redhat-menus-*.rpm
Überprüfe danach die erfolgreiche Installation von OpenOffice mit folgendem Befehl:
[user@centron~]$ openoffice4 -h
OpenOffice 4.1.5 415m1(Build:9789)
Usage: soffice [options] [documents...]
Options:
-minimized keep startup bitmap minimized.
...
FFmpeg und SoX installieren
Installiere das RPMFusion-Repository, welches vorgefertigte Pakete für FFmpeg und Sound eXchange (SoX) bereitstellt:
sudo rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
Installiere nun FFmpeg und SoX:
sudo yum -y install ffmpeg sox
FFmpeg und SoX sind essenziell für die Aufnahme von Meetings sowie das Einfügen von Medienformaten wie .avi, .flv, .mov und .mp4 in das Whiteboard. Überprüfe deren Installation, indem du ihre Versionen prüfst:
[user@centron~]$ sox --version
sox: SoX v14.4.1
[user@centron~]$ ffmpeg -version
ffmpeg version 2.8.13 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-11)
PostgreSQL für OpenMeetings installieren und konfigurieren
OpenMeetings unterstützt verschiedene Datenbanksysteme wie MySQL, PostgreSQL, Apache Derby und Oracle. In dieser Anleitung verwenden wir PostgreSQL als Datenbankserver für OpenMeetings.
PostgreSQL ist ein leistungsstarkes, objekt-relationales Datenbanksystem, das für seine Stabilität und Schnelligkeit bekannt ist. Da das Standard-Repository von CentOS eine veraltete Version von PostgreSQL enthält, muss das offizielle PostgreSQL-Repository hinzugefügt werden, um auf die neueste Version zugreifen zu können:
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Installiere den PostgreSQL-Server sowie zusätzliche Pakete:
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Initialisiere das Datenbank-Cluster:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Starte den PostgreSQL-Dienst und richte ihn so ein, dass er automatisch beim Systemstart geladen wird:
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Ändere das Passwort des Standard-PostgreSQL-Benutzers:
sudo passwd postgres
Wechsle in das Benutzerkonto von PostgreSQL:
sudo su - postgres
Erstelle einen neuen PostgreSQL-Benutzer für OpenMeetings:
createuser openmeetings
(Du kannst den Benutzernamen openmeetings durch einen anderen Namen deiner Wahl ersetzen.) Öffne anschließend die PostgreSQL-Shell:
psql
Lege ein sicheres Passwort für den neuen Benutzer fest:
ALTER USER openmeetings WITH ENCRYPTED password 'DBPassword';
Ersetze DBPassword dabei mit einem sicheren Passwort.
Erstelle nun eine neue Datenbank für OpenMeetings und weise dem erstellten Benutzer die Eigentümerschaft zu:
CREATE DATABASE openmeetings OWNER openmeetings;
Verlasse die PostgreSQL-Shell:
\q
Wechsle zurück in die Umgebung des sudo-Benutzers:
exit
Bearbeite die Datei pg_hba.conf
, um die Authentifizierung auf MD5 umzustellen:
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Ändere die Methode für lokale Verbindungen auf md5:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Speichere die Änderungen und schließe den Editor. Starte anschließend den PostgreSQL-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart postgresql-10
Apache OpenMeetings installieren und konfigurieren
Nachdem alle notwendigen Abhängigkeiten installiert wurden, erstelle einen dedizierten Benutzer für OpenMeetings. Der Betrieb unter einem Nicht-Root-Benutzer erhöht die Serversicherheit:
sudo adduser -b /var -s /sbin/nologin openmeetings
Durch diesen Befehl wird auch das Home-Verzeichnis /var/openmeetings
für den Benutzer angelegt.
Besuche die Download-Seite von Apache OpenMeetings und lade die aktuelle Version herunter:
cd /tmp
wget http://www-us.apache.org/dist/openmeetings/4.0.1/bin/apache-openmeetings-4.0.1.tar.gz
Entpacke das Archiv in das Verzeichnis des OpenMeetings-Benutzers:
sudo tar xf apache-openmeetings-4.0.1.tar.gz -C /var/openmeetings
Übertrage die Besitzrechte der extrahierten Dateien an den OpenMeetings-Benutzer:
sudo chown -R openmeetings:openmeetings /var/openmeetings
Firewall-Regeln anpassen
Öffne vor dem Start von OpenMeetings die benötigten Ports in der Firewall:
sudo firewall-cmd --zone=public --permanent --add-port=5080/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1935/tcp
sudo firewall-cmd --reload
Apache OpenMeetings starten
Starte die OpenMeetings-Anwendung mit folgendem Befehl:
sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings
Rufe anschließend im Browser die URL http://192.168.1.1:5080/openmeetings auf.
Du solltest die Willkommensseite sehen, die Anweisungen zur Installation von GhostScript anzeigt.
Da GhostScript bereits installiert wurde, fahre fort und gib die Datenbankdetails ein. Wähle PostgreSQL als Datenbanktyp und trage die entsprechenden Zugangsdaten ein.
Prüfe die Datenbankverbindung mit der Schaltfläche „Check“. Bei Erfolg erscheint die Meldung: „Database check was successful.“
OpenMeetings-Installation konfigurieren
Fülle nun folgende Felder aus:
- Administrator-Benutzerkonto und Gruppenname
- Selbstregistrierung aktivieren oder deaktivieren
- Option für E-Mail-Verifizierung
- Standardsprache für die Plattform
Gib auch die SMTP-Serverdetails ein. Falls noch kein SMTP-Server bereitsteht, kannst du dies später über das Admin-Dashboard nachholen.
Beim Festlegen der Pfade zu externen Programmen:
- /usr/bin für ImageMagick, FFmpeg und SoX
- /opt/openoffice4 für OpenOffice
Falls es Probleme bei den Pfadangaben gibt, verwende den Befehl:
which <binary_name>
Zum Beispiel:
which ffmpeg
Als Ergebnis sollte /usr/bin/ffmpeg erscheinen.
Standardmäßig kannst du in der nächsten Konfigurationsmaske die Vorgaben übernehmen und auf „Finish“ klicken, um die Datenbank zu schreiben und die Installation abzuschließen.
Nach der Installation
OpenMeetings wurde erfolgreich auf deinem Server installiert. Im nächsten Schritt wird empfohlen, Systemd zur Verwaltung des Dienstes einzurichten und Nginx mit Let’s Encrypt SSL als sicheren Reverse Proxy zu konfigurieren.
Systemd für Apache OpenMeetings einrichten
Auch wenn OpenMeetings manuell gestartet werden kann, empfiehlt es sich, einen Systemd-Dienst einzurichten, damit OpenMeetings automatisch beim Booten startet und nach Abstürzen neu gestartet wird.
Beende zuerst den aktuell laufenden OpenMeetings-Prozess:
sudo pkill -KILL -u openmeetings
Erstelle dann eine neue Systemd-Unit-Datei:
sudo nano /etc/systemd/system/openmeetings.service
Füge folgenden Inhalt ein:
[Unit]
Description=OpenMeeting Service
After=network.target
[Service]
Type=simple
User=openmeetings
WorkingDirectory=/var/openmeetings
ExecStart=/var/openmeetings/red5.sh
Restart=always
[Install]
WantedBy=multi-user.target
Starte und aktiviere den Dienst:
sudo systemctl start openmeetings
sudo systemctl enable openmeetings
Überprüfe den Status des OpenMeetings-Dienstes:
sudo systemctl status openmeetings
Die Ausgabe sollte etwa wie folgt aussehen:
[root@centron openmeetings]# sudo systemctl status openmeetings
● openmeetings.service - OpenMeeting Service
Loaded: loaded (/etc/systemd/system/openmeetings.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-01-31 15:40:56 UTC; 38s ago
Main PID: 10522 (java)
CGroup: /system.slice/openmeetings.service
└─10522 /bin/java -Dred5.root=/var/openmeetings -Djava.security.debug=failure -Xms256m...
Nginx als SSL-geschützten Reverse-Proxy konfigurieren
Standardmäßig läuft OpenMeetings über Port 5080 ohne Verschlüsselung, was ein potenzielles Sicherheitsrisiko darstellt. Um die Verbindung abzusichern, wird Nginx als Reverse-Proxy für HTTPS-Verbindungen eingerichtet.
Installiere Nginx:
sudo yum -y install nginx
Starte und aktiviere den Nginx-Dienst:
sudo systemctl start nginx
sudo systemctl enable nginx
Installiere Certbot, um SSL-Zertifikate von Let’s Encrypt zu beantragen:
sudo yum -y install certbot
Erlaube HTTP- und HTTPS-Verkehr durch die Firewall:
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Stelle sicher, dass die Domain korrekt auf den Server zeigt. Beantrage danach ein SSL-Zertifikat:
sudo certbot certonly --webroot -w /usr/share/nginx/html -d meetings.example.com
Die Zertifikate befinden sich anschließend unter:
/etc/letsencrypt/live/meetings.example.com/fullchain.pem
(SSL-Zertifikat)/etc/letsencrypt/live/meetings.example.com/privkey.pem
(privater Schlüssel)
Da Let’s Encrypt-Zertifikate alle 90 Tage ablaufen, richte eine automatische Verlängerung ein:
sudo crontab -e
Füge folgende Zeile hinzu, um die Erneuerung täglich um 5:30 Uhr zu prüfen:
30 5 * * * /usr/bin/certbot renew --quiet
Nginx für OpenMeetings konfigurieren
Entferne zunächst default_server
aus der Standard-Nginx-Konfiguration:
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Erstelle danach eine neue Konfigurationsdatei für OpenMeetings:
sudo nano /etc/nginx/conf.d/meetings.example.com.conf
Füge folgenden Inhalt ein:
server {
listen 80;
server_name meetings.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name meetings.example.com;
ssl_certificate /etc/letsencrypt/live/meetings.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meetings.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/openmeetings.access.log;
location / {
proxy_pass http://localhost:5080;
proxy_set_header host $host;
proxy_http_version 1.1;
proxy_set_header upgrade $http_upgrade;
proxy_set_header connection "upgrade";
}
}
Überprüfe die Nginx-Konfiguration auf Fehler:
sudo nginx -t
Falls alles in Ordnung ist („syntax is ok“ und „test is successful“), starte Nginx neu:
sudo systemctl restart nginx
OpenMeetings abschließend konfigurieren
Melde dich im Administrationsbereich von OpenMeetings an. Gehe zu Administration >> Konfiguration und ändere den Wert von application.base.url
auf https://meetings.example.com. Speichere die Änderungen.
Starte danach den OpenMeetings-Dienst neu:
sudo systemctl restart openmeetings
Jetzt kannst du deine OpenMeetings-Installation unter https://meetings.example.com aufrufen und nutzen.
Fazit
Mit dieser Anleitung hast du Apache OpenMeetings erfolgreich auf einem CentOS 7-Server installiert und abgesichert. Die Anwendung ist nun durch Nginx mit Let’s Encrypt SSL geschützt. Systemd sorgt für die automatische Verwaltung und einen zuverlässigen Neustart des Dienstes. In dieser sicheren Umgebung kannst du OpenMeetings für Online-Meetings, Webinare und Zusammenarbeit verwenden. Lade deine Kollegen ein und starte noch heute deine Webkonferenzen!