Apache OpenMeetings è un'applicazione per conferenze Web open source. È scritto in Java e supporta più server di database. Fornisce molte funzionalità, come conferenze audio e video, condivisione dello schermo, esploratore di file, un sistema di moderazione utente, messaggi e contatti privati, un calendario integrato per i piani di riunione e molti altri. È inoltre possibile registrare una sessione di conferenza. Fornisce API SOAP / REST e plugin multipli per integrarsi facilmente con Moodle, Jira, Joomla, Confluence e altro.
Prerequisiti
- Un'istanza del server Vultr CentOS 7 con almeno 4 GB di RAM.
- Un utente sudo .
- Un nome di dominio puntato verso il server.
Per questo tutorial, utilizzeremo 192.168.1.1
come indirizzo IP pubblico e meetings.example.com
come nome di dominio puntato verso l'istanza Vultr. Assicurati di sostituire tutte le occorrenze dell'indirizzo IP di esempio e del nome di dominio con quello effettivo.
Aggiorna il tuo sistema di base usando la guida Come aggiornare CentOS 7 . Dopo aver aggiornato il sistema, procedere con l'installazione di Java.
Installa Java
OpenMeetings è scritto in Java, quindi per funzionare richiede Java Runtime Environment (JRE). Scarica l'ultimo pacchetto Oracle R JDK 8 RPM disponibile, che include sia JRE che JDK.
wget --header 'Cookie: oraclelicense=a' http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm
Installa il pacchetto scaricato.
sudo rpm -Uvh jdk-8u161-linux-x64.rpm
Se Java è stato installato correttamente, sarai in grado di verificarne la versione.
java -version
Vedrai il seguente output.
[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)
Prima di poter procedere oltre, dovremo impostare le variabili di ambiente JAVA_HOME
e JRE_HOME
. Trova il percorso assoluto dell'eseguibile JAVA nel tuo sistema.
readlink -f $(which java)
Vedrai un risultato simile.
[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_161/jre/bin/java
Ora, imposta le variabili di ambiente JAVA_HOME
e in JRE_HOME
base al percorso della directory 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
Esegui il bash_profile
file.
source ~/.bash_profile
Ora puoi eseguire il echo $JAVA_HOME
comando per assicurarti che la variabile di ambiente sia impostata.
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_161
Installa dipendenze
Installa le librerie ImageMagick e GhostScript.
sudo yum -y install epel-release
sudo yum -y install ImageMagick ghostscript
ImageMagick fornisce supporto per caricare immagini e importarle sulla lavagna. GhostScript consente di caricare PDF sulla lavagna.
Verifica la versione di ImageMagick e GhostScript per assicurarti che siano stati installati correttamente.
[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.
Inoltre, dovremo anche installare Apache OpenOffice o LibreOffice sul sistema. Installazione di uno di questi consentirà OpenMeetings per importare i file nei formati di documento Office come .doc
, .docx
, .ppt
, .pptx
, o .xlx
. In questo tutorial, installeremo Apache OpenOffice.
Passa alla directory temporanea e scarica Apache OpenOffice RPM.
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
Estrarre l'archivio e installare tutti i pacchetti 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
Per verificare se OpenOffice è installato correttamente e funziona, digita openoffice4 -h
la riga di comando. Stamperà la sua versione e un breve aiuto.
[user@vultr ~]$ openoffice4 -h
OpenOffice 4.1.5 415m1(Build:9789)
Usage: soffice [options] [documents...]
Options:
-minimized keep startup bitmap minimized.
...
Installa il repository RPMFusion nel tuo sistema in quanto fornisce pacchetti predefiniti per FFmpeg e Sound eXchange (SoX).
sudo rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
Installa FFmpeg e SoX.
sudo yum -y install ffmpeg sox
FFmpeg e SoX consentiranno la registrazione della riunione. Serviranno anche nei media l'importazione di file come ad esempio .avi
, .flv
, .mov
e .mp4
nella lavagna. Verificare l'installazione controllando le versioni di FFmpeg e 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)
Installa PostgreSQL
OpenMeetings supporta diversi tipi di server di database, come MySQL, PostgreSQL, Apache, Derby e Oracle. In questo tutorial, utilizzeremo il server PostgreSQL per ospitare il database OpenMeeting.
PostgreSQL è un sistema di database relazionale ad oggetti e noto per la sua stabilità e velocità. Il yum
repository predefinito contiene una vecchia versione di PostgreSQL, quindi aggiungi il repository PostgreSQL per l'ultima versione dell'applicazione nel sistema.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Installa il server di database PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Inizializza il database.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Avviare il server PostgreSQL e abilitarlo ad avviarsi automaticamente all'avvio.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Cambia la password per l'utente PostgreSQL predefinito.
sudo passwd postgres
Accedi come utente PostgreSQL.
sudo su - postgres
Crea un nuovo utente PostgreSQL per l'utente OpenMeetings.
createuser openmeetings
È possibile utilizzare qualsiasi nome utente anziché openmeetings
. Passa alla shell PostgreSQL.
psql
Impostare una password per l'utente appena creato per il database OpenMeetings.
ALTER USER openmeetings WITH ENCRYPTED password 'DBPassword';
Sostituisci DBPassword
con una password sicura. Creare un nuovo database per l'installazione di OpenMeetings.
CREATE DATABASE openmeetings OWNER openmeetings;
Esci dalla psql
shell.
\q
Passa sudo
all'utente.
exit
Modifica il pg_hba.conf
file per abilitare l'autenticazione basata su MD5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Trova le seguenti righe e modifica i valori nella METHOD
colonna da ident
a 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
Una volta aggiornata, la configurazione sarà simile a questa.
# 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
Salvare il file ed uscire dall'editor. Riavvia PostgreSQL per rendere effettive le modifiche.
sudo systemctl restart postgresql-10
Installazione di OpenMeetings
Poiché tutte le dipendenze richieste sono installate. Crea un nuovo utente per OpenMeetings. L'uso di un utente non root per l'esecuzione di OpenMeetings è consigliato per la sicurezza del server.
sudo adduser -b /var -s /sbin/nologin openmeetings
Il comando sopra creerà anche la home directory openmeetings
dell'utente in /var/openmeetings
.
Controlla la pagina di download di Apache OpenMeetings per ottenere il collegamento all'ultima versione disponibile. Scarica l'archivio OpenMeetings.
cd /tmp
wget http://www-us.apache.org/dist/openmeetings/4.0.1/bin/apache-openmeetings-4.0.1.tar.gz
Estrarre l'archivio nella /var/openmeetings
directory.
sudo tar xf apache-openmeetings-4.0.1.tar.gz -C /var/openmeetings
Fornire la proprietà dei file all'utente OpenMeetings che abbiamo creato in precedenza.
sudo chown -R openmeetings:openmeetings /var/openmeetings
Prima di avviare l'applicazione, dovremo modificare il firewall per consentire porte 5080
e 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
Ora puoi avviare l'applicazione.
sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings
Ora puoi accedere http://192.168.1.1:5080/openmeetings
al tuo browser preferito. Vedrai la schermata di benvenuto con le istruzioni per installare GhostScript.
Poiché abbiamo già installato GhostScript, procedere oltre. Sulla prossima interfaccia, ti verrà richiesto di fornire i dettagli del server di database. Seleziona il tipo di database " PostgreSql
" e fornisci i dettagli del tuo server di database che hai configurato durante l'installazione di PostgreSQL.
Fai clic sul Check
pulsante " " e dovresti visualizzare il messaggio: " Database check was successful
". Fornisci i dettagli del tuo account amministratore e un nome di gruppo nell'interfaccia successiva.
Configura le impostazioni di base della tua installazione; ad esempio per consentire l'autoregistrazione, la verifica tramite e-mail e la lingua predefinita. Inoltre, fornisci i dettagli del tuo server SMTP. Se non si dispone di un server SMTP pronto, è possibile fornire anche i dettagli SMTP più avanti nella dashboard dell'amministratore.
Ti chiederà il percorso dei binari di diverse applicazioni. Fornire /usr/bin
come percorso per ImageMagick, FFmpeg e SoX. Se l'applicazione fornisce errori per il percorso immesso, è possibile utilizzare which <binary_name>
per trovare il percorso assoluto del file binario. Ad esempio, which ffmpeg
dovrebbe darti /usr/bin/ffmpeg
come output. Utilizzare /opt/openoffice4
come percorso dei binari di OpenOffice.
È possibile saltare la configurazione sull'interfaccia successiva poiché utilizzeremo i valori predefiniti. Infine, fai clic sul pulsante " Finish
" per installare l'applicazione e scrivere il database.
OpenMeetings è ora installato sul tuo server. Per renderlo più produttivo, installeremo Systemd per gestire il server OpenMeetings. Configureremo anche Nginx con Let's Encrypt SSL come proxy inverso sicuro per servire l'applicazione.
Configurazione di Systemd
Sebbene possiamo facilmente avviare e arrestare l'applicazione utilizzando il comando sopra, si consiglia di impostare un'unità di servizio Systemd per gestire l'applicazione. Ciò garantirà inoltre che il servizio venga avviato automaticamente all'avvio e agli errori.
Arrestare il server OpenMeetings premendo " Ctrl+C
" o uccidendo la shell openmeetings
dell'utente.
sudo pkill -KILL -u openmeetings
Creare un nuovo file di unità Systemd per OpenMeetings Server.
sudo nano /etc/systemd/system/openmeetings.service
Popolare il file.
[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
Avviare il server OpenMeetings e abilitarlo ad avviarsi automaticamente all'avvio.
sudo systemctl start openmeetings
sudo systemctl enable openmeetings
Per verificare lo stato del servizio, è possibile eseguire quanto segue.
sudo systemctl status openmeetings
Vedrai un risultato simile.
[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.
Installa Nginx come proxy inverso
Per impostazione predefinita, OpenMeetings ascolta la porta 5080
. Se la connessione tra il browser e il server non è crittografata con SSL, gli accessi e le altre informazioni verranno inviati in testo semplice. Questa potrebbe essere una potenziale minaccia poiché qualcuno che intercetta sulla rete potrebbe ottenere le informazioni. Per mitigare questo problema, configureremo Nginx come proxy inverso che ascolterà la porta HTTPS predefinita e inoltrerà tutte le richieste al server OpenMeetings.
Installa Nginx.
sudo yum -y install nginx
Avvia Nginx e abilita l'avvio automatico all'avvio.
sudo systemctl start nginx
sudo systemctl enable nginx
Installa Certbot, che è l'applicazione client per Let's Encrypt CA.
sudo yum -y install certbot
Prima di poter richiedere i certificati, è necessario consentire porte 80
e / 443
o standard HTTP
e HTTPS
servizi attraverso il firewall.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Nota: per ottenere certificati da Let's Encrypt CA, il dominio per il quale devono essere generati i certificati deve essere puntato verso il server. In caso contrario, apportare le modifiche necessarie ai record DNS del dominio e attendere la propagazione del DNS prima di effettuare nuovamente la richiesta di certificato. Certbot controlla l'autorità di dominio prima di fornire i certificati.
Genera i certificati SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d meetings.example.com
È probabile che i certificati generati siano archiviati in /etc/letsencrypt/live/meetings.example.com/
. Il certificato SSL verrà archiviato come fullchain.pem
e la chiave privata verrà archiviata come privkey.pem
.
Let's Encrypt certificati scadranno tra 90 giorni, quindi si consiglia di impostare il rinnovo automatico dei certificati utilizzando i processi Cron.
Apri il file di lavoro cron.
sudo crontab -e
Aggiungi la seguente riga alla fine del file.
30 5 * * * /usr/bin/certbot renew --quiet
Il precedente cron job verrà eseguito ogni giorno alle 5:30. Se il certificato è in scadenza, verrà automaticamente rinnovato.
Ora, modifica il file di configurazione predefinito di Nginx per eliminare la default_server
riga.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Crea un nuovo file di configurazione per OpenMeetings Server.
sudo nano /etc/nginx/conf.d/meetings.example.com.conf
Popolare il file.
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";
}
}
Verificare la presenza di errori nel nuovo file di configurazione.
sudo nginx -t
Se viene visualizzato il seguente output, la configurazione è priva di errori.
[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
Se hai ricevuto qualche tipo di errore, assicurati di ricontrollare il percorso dei certificati SSL. Riavviare il server Web Nginx per implementare la modifica della configurazione.
sudo systemctl restart nginx
Prima di poter iniziare a utilizzare l'applicazione sul sito protetto SSL, è necessario apportare una modifica alla configurazione in OpenMeetings. Accedi alla dashboard amministrativa di OpenMeetings e vai a " Administration >> Configuration
". Nella tabella di ID, chiave e valore; trova application.base.url
. Cambia il suo valore in https://meetings.example.com
base al tuo nome di dominio. Salvare la configurazione facendo clic sull'icona Salva sopra.
Riavvia il servizio OpenMeetings.
sudo systemctl restart openmeetings
Ora puoi navigare https://meetings.example.com
usando il tuo browser preferito e accedere per usare l'applicazione.
Congratulazioni, Apache OpenMeetings è ora installato sul tuo server. Puoi invitare i tuoi amici e iniziare a utilizzare OpenMeetings per conferenze online.