Apache OpenMeetings est une application de conférence Web open source. Il est écrit en Java et prend en charge plusieurs serveurs de base de données. Il offre de nombreuses fonctionnalités, telles que la conférence audio et vidéo, le partage d'écran, l'explorateur de fichiers, un système de modération utilisateur, des messages et contacts privés, un calendrier intégré pour les plans de réunion et bien d'autres. Vous pouvez également enregistrer une session de conférence. Il fournit une API SOAP / REST et plusieurs plugins pour s'intégrer facilement à Moodle, Jira, Joomla, Confluence et plus encore.
Conditions préalables
- Une instance de serveur Vultr CentOS 7 avec au moins 4 Go de RAM.
- Un utilisateur sudo .
- Un nom de domaine pointé vers le serveur.
Pour ce didacticiel, nous utiliserons 192.168.1.1
comme adresse IP publique et meetings.example.com
comme nom de domaine pointé vers l'instance Vultr. Veuillez vous assurer de remplacer toutes les occurrences de l'exemple d'adresse IP et de nom de domaine par celle-ci.
Mettez à jour votre système de base à l'aide du guide Comment mettre à jour CentOS 7 . Une fois votre système mis à jour, installez Java.
Installer Java
OpenMeetings est écrit en Java, il nécessite donc Java Runtime Environment (JRE) pour fonctionner. Téléchargez le dernier package Oracle SE JDK 8 RPM disponible, qui comprend à la fois JRE et JDK.
wget --header 'Cookie: oraclelicense=a' http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm
Installez le package téléchargé.
sudo rpm -Uvh jdk-8u161-linux-x64.rpm
Si Java a été installé avec succès, vous pourrez vérifier sa version.
java -version
Vous verrez la sortie suivante.
[user@vultr ~]$ 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)
Avant de continuer, nous devrons configurer les variables d'environnement JAVA_HOME
et JRE_HOME
. Trouvez le chemin absolu de l'exécutable JAVA dans votre système.
readlink -f $(which java)
Vous verrez une sortie similaire.
[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_161/jre/bin/java
Maintenant, définissez les variables d'environnement JAVA_HOME
et en JRE_HOME
fonction du chemin du répertoire Java.
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
Exécutez le bash_profile
fichier.
source ~/.bash_profile
Vous pouvez maintenant exécuter la echo $JAVA_HOME
commande pour vous assurer que la variable d'environnement est définie.
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_161
Installer les dépendances
Installez les bibliothèques ImageMagick et GhostScript.
sudo yum -y install epel-release
sudo yum -y install ImageMagick ghostscript
ImageMagick prend en charge le téléchargement d'images et leur importation sur le tableau blanc. GhostScript vous permet de télécharger des PDF sur le tableau blanc.
Vérifiez la version d'ImageMagick et de GhostScript pour vous assurer qu'ils sont correctement installés.
[user@vultr ~]$ 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@vultr ~]$ ghostscript -v
GPL Ghostscript 9.07 (2013-02-14)
Copyright (C) 2012 Artifex Software, Inc. All rights reserved.
Furthur, nous devrons également installer Apache OpenOffice ou LibreOffice sur le système. L' installation de ces deux OpenMeetings permettra d'importer les fichiers dans des formats de documents Office tels que .doc
, .docx
, .ppt
, .pptx
ou .xlx
. Dans ce tutoriel, nous allons installer Apache OpenOffice.
Basculez vers le répertoire temporaire et téléchargez le RPM Apache OpenOffice.
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
Extrayez l'archive et installez tous les packages RPM.
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
Pour vérifier si OpenOffice est installé correctement et fonctionne, tapez openoffice4 -h
dans la ligne de commande. Il imprimera sa version et une courte aide.
[user@vultr ~]$ openoffice4 -h
OpenOffice 4.1.5 415m1(Build:9789)
Usage: soffice [options] [documents...]
Options:
-minimized keep startup bitmap minimized.
...
Installez le référentiel RPMFusion dans votre système car il fournit des packages prédéfinis pour FFmpeg et Sound eXchange (SoX).
sudo rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
Installez FFmpeg et SoX.
sudo yum -y install ffmpeg sox
FFmpeg et SoX permettront l'enregistrement de la réunion. Ils seront également l' aide dans les médias tels que l' importation de fichiers .avi
, .flv
, .mov
et .mp4
dans le tableau blanc. Vérifiez l'installation en vérifiant les versions de FFmpeg et SoX.
[user@vultr ~]$ sox --version
sox: SoX v14.4.1
[user@vultr ~]$ 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)
Installer PostgreSQL
OpenMeetings prend en charge plusieurs types de serveurs de bases de données, tels que MySQL, PostgreSQL, Apache, Derby et Oracle. Dans ce tutoriel, nous utiliserons le serveur PostgreSQL pour héberger la base de données OpenMeeting.
PostgreSQL est un système de base de données relationnelle objet et connu pour sa stabilité et sa vitesse. Le yum
référentiel par défaut contient une ancienne version de PostgreSQL, alors ajoutez le référentiel PostgreSQL pour la dernière version de l'application dans le système.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Installez le serveur de base de données PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Initialisez la base de données.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Démarrez le serveur PostgreSQL et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Modifiez le mot de passe de l'utilisateur PostgreSQL par défaut.
sudo passwd postgres
Connectez-vous en tant qu'utilisateur PostgreSQL.
sudo su - postgres
Créez un nouvel utilisateur PostgreSQL pour l'utilisateur OpenMeetings.
createuser openmeetings
Vous pouvez utiliser n'importe quel nom d'utilisateur au lieu de openmeetings
. Basculez vers le shell PostgreSQL.
psql
Définissez un mot de passe pour l'utilisateur nouvellement créé pour la base de données OpenMeetings.
ALTER USER openmeetings WITH ENCRYPTED password 'DBPassword';
Remplacez-le DBPassword
par un mot de passe sécurisé. Créez une nouvelle base de données pour l'installation d'OpenMeetings.
CREATE DATABASE openmeetings OWNER openmeetings;
Sortez du psql
shell.
\q
Passez à l' sudo
utilisateur.
exit
Modifiez le pg_hba.conf
fichier pour activer l'authentification basée sur MD5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Recherchez les lignes suivantes et modifiez les valeurs de la METHOD
colonne de ident
à 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 ident
# IPv6 local connections:
host all all ::1/128 ident
Une fois mise à jour, la configuration ressemblera à ceci.
# 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
Enregistrez le fichier et quittez l'éditeur. Redémarrez PostgreSQL pour que les modifications prennent effet.
sudo systemctl restart postgresql-10
Installation d'OpenMeetings
Puisque toutes les dépendances requises sont installées. Créez un nouvel utilisateur pour OpenMeetings. L'utilisation d'un utilisateur non root pour exécuter OpenMeetings est recommandée pour la sécurité du serveur.
sudo adduser -b /var -s /sbin/nologin openmeetings
La commande ci-dessus créera également le répertoire personnel de l' openmeetings
utilisateur dans /var/openmeetings
.
Consultez la page de téléchargement d'Apache OpenMeetings pour obtenir le lien vers la dernière version disponible. Téléchargez l'archive OpenMeetings.
cd /tmp
wget http://www-us.apache.org/dist/openmeetings/4.0.1/bin/apache-openmeetings-4.0.1.tar.gz
Extrayez l'archive dans le /var/openmeetings
répertoire.
sudo tar xf apache-openmeetings-4.0.1.tar.gz -C /var/openmeetings
Attribuez la propriété des fichiers à l'utilisateur OpenMeetings que nous avons créé précédemment.
sudo chown -R openmeetings:openmeetings /var/openmeetings
Avant de démarrer l'application, nous devrons modifier le pare-feu pour autoriser les ports 5080
et 1935
.
sudo firewall-cmd --zone=public --permanent --add-port=5080/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1935/tcp
sudo firewall-cmd --reload
Vous pouvez maintenant démarrer l'application.
sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings
Vous pouvez maintenant accéder http://192.168.1.1:5080/openmeetings
à votre navigateur préféré. Vous verrez l'écran de bienvenue avec des instructions pour installer GhostScript.
Puisque nous avons déjà installé GhostScript, continuez. Sur l'interface suivante, vous serez invité à fournir les détails du serveur de base de données. Sélectionnez le type de base de données " PostgreSql
" et fournissez les détails de votre serveur de base de données que vous avez configuré lors de l'installation de PostgreSQL.
Cliquez sur le Check
bouton "" et vous devriez obtenir le message: " Database check was successful
". Fournissez les détails de votre compte administrateur et un nom de groupe dans la prochaine interface.
Configurez les paramètres de base de votre installation; afin d'autoriser l'enregistrement automatique, la vérification des e-mails et la langue par défaut. Fournissez également les détails de votre serveur SMTP. Si vous n'avez pas de serveur SMTP prêt, vous pouvez également fournir les détails SMTP ultérieurement dans le tableau de bord administrateur.
Il vous demandera le chemin vers les binaires de différentes applications. Fournissez /usr/bin
comme chemin pour ImageMagick, FFmpeg et SoX. Si l'application fournit des erreurs pour le chemin d'accès entré, vous pouvez utiliser which <binary_name>
pour trouver le chemin absolu vers le binaire. Par exemple, which ffmpeg
devrait vous donner /usr/bin/ffmpeg
en sortie. Utilisez-le /opt/openoffice4
comme chemin vers les binaires OpenOffice.
Vous pouvez ignorer la configuration sur la prochaine interface car nous allons utiliser les valeurs par défaut. Enfin, cliquez sur le Finish
bouton "" pour installer l'application et écrire la base de données.
OpenMeetings est maintenant installé sur votre serveur. Pour le rendre plus convivial pour la production, nous allons configurer Systemd pour gérer le serveur OpenMeetings. Nous allons également configurer Nginx avec Let's Encrypt SSL en tant que proxy inverse sécurisé pour servir l'application.
Configuration de Systemd
Bien que nous puissions facilement démarrer et arrêter l'application à l'aide de la commande ci-dessus, il est recommandé de configurer une unité de service Systemd pour gérer l'application. Cela garantira également que le service démarre automatiquement au démarrage et en cas d'échec.
Arrêtez le serveur OpenMeetings en appuyant sur " Ctrl+C
" ou en tuant le shell de l' openmeetings
utilisateur.
sudo pkill -KILL -u openmeetings
Créez un nouveau fichier d'unité Systemd pour OpenMeetings Server.
sudo nano /etc/systemd/system/openmeetings.service
Remplissez le fichier.
[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
Démarrez le serveur OpenMeetings et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start openmeetings
sudo systemctl enable openmeetings
Pour vérifier l'état du service, vous pouvez exécuter ce qui suit.
sudo systemctl status openmeetings
Vous verrez une sortie similaire.
[root@vultr 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...
Jan 31 15:41:29 vultr.guest red5.sh[10522]: [INFO] [Loader:/openmeetings] org.red5.server.Serv...ngs
Jan 31 15:41:29 vultr.guest red5.sh[10522]: [INFO] [Loader:/openmeetings] org.red5.server.Serv...ngs
Jan 31 15:41:29 vultr.guest red5.sh[10522]: DEBUG 01-31 15:41:29.431 16603 343 o.a.o.c.r.Scope...se]
Jan 31 15:41:29 vultr.guest red5.sh[10522]: DEBUG 01-31 15:41:29.531 16703 124 o.a.o.c.r.Scope...ngs
Jan 31 15:41:34 vultr.guest red5.sh[10522]: DEBUG 01-31 15:41:34.421 21593 82 o.a.o.u.Version ...] -
Jan 31 15:41:34 vultr.guest red5.sh[10522]: ##################################################...###
Jan 31 15:41:34 vultr.guest red5.sh[10522]: # Openmeetings is up ... #
Jan 31 15:41:34 vultr.guest red5.sh[10522]: # 4.0.1 3795f14 2017-12-05T16... #
Jan 31 15:41:34 vultr.guest red5.sh[10522]: # and ready to use ... #
Jan 31 15:41:34 vultr.guest red5.sh[10522]: ##################################################...###
Hint: Some lines were ellipsized, use -l to show in full.
Configurer Nginx comme proxy inverse
Par défaut, OpenMeetings écoute le port 5080
. Si la connexion entre le navigateur et le serveur n'est pas cryptée avec SSL, les connexions et autres informations seront envoyées en texte brut. Cela pourrait être une menace potentielle car une personne qui espionne sur le réseau pourrait obtenir les informations. Pour atténuer ce problème, nous allons configurer Nginx comme proxy inverse qui écoutera le port HTTPS par défaut et procurera toutes les requêtes au serveur OpenMeetings.
Installez Nginx.
sudo yum -y install nginx
Démarrez Nginx et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start nginx
sudo systemctl enable nginx
Installez Certbot, qui est l'application cliente de Let's Encrypt CA.
sudo yum -y install certbot
Avant de pouvoir demander les certificats, vous devez autoriser les ports 80
et / 443
ou la norme HTTP
et les HTTPS
services via le pare-feu.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Remarque: Pour obtenir des certificats de Let's Encrypt CA, le domaine pour lequel les certificats doivent être générés doit être dirigé vers le serveur. Sinon, apportez les modifications nécessaires aux enregistrements DNS du domaine et attendez que le DNS se propage avant de refaire la demande de certificat. Certbot vérifie l'autorité de domaine avant de fournir les certificats.
Générez les certificats SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d meetings.example.com
Les certificats générés sont susceptibles d'être stockés dans /etc/letsencrypt/live/meetings.example.com/
. Le certificat SSL sera stocké sous fullchain.pem
et la clé privée sera stockée sous privkey.pem
.
Les certificats Let's Encrypt expirent dans 90 jours, il est donc recommandé de configurer le renouvellement automatique des certificats à l'aide des tâches Cron.
Ouvrez le fichier de tâche cron.
sudo crontab -e
Ajoutez la ligne suivante à la fin du fichier.
30 5 * * * /usr/bin/certbot renew --quiet
La tâche cron ci-dessus s'exécutera tous les jours à 5h30. Si le certificat doit expirer, il sera automatiquement renouvelé.
Maintenant, changez le fichier de configuration par défaut de Nginx pour supprimer la default_server
ligne.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Créez un nouveau fichier de configuration pour OpenMeetings Server.
sudo nano /etc/nginx/conf.d/meetings.example.com.conf
Remplissez le fichier.
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";
}
}
Recherchez les erreurs dans le nouveau fichier de configuration.
sudo nginx -t
Si vous voyez la sortie suivante, la configuration est sans erreur.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Si vous avez reçu une sorte d'erreur, assurez-vous de vérifier le chemin d'accès aux certificats SSL. Redémarrez le serveur Web Nginx pour implémenter le changement de configuration.
sudo systemctl restart nginx
Avant de pouvoir commencer à utiliser l'application sur le site sécurisé SSL, vous devrez effectuer une modification de configuration dans OpenMeetings. Connectez-vous à votre tableau de bord administratif OpenMeetings et accédez à " Administration >> Configuration
". Dans le tableau des ID, clé et valeur; trouver application.base.url
. Modifiez sa valeur en https://meetings.example.com
fonction de votre nom de domaine. Enregistrez la configuration en cliquant sur l'icône d'enregistrement ci-dessus.
Redémarrez le service OpenMeetings.
sudo systemctl restart openmeetings
Maintenant, vous pouvez naviguer à l' https://meetings.example.com
aide de votre navigateur Web préféré et vous connecter pour utiliser l'application.
Félicitations, Apache OpenMeetings est maintenant installé sur votre serveur. Vous pouvez inviter vos amis et commencer à utiliser OpenMeetings pour des conférences en ligne.