Προαπαιτούμενα
Εγκαταστήστε Java
Εγκατάσταση Εξαρτήσεων
Εγκαταστήστε το PostgreSQL
Εγκατάσταση OpenMeetings
Ρύθμιση του Systemd
Ρυθμίστε το Nginx ως Reverse Proxy
Το Apache OpenMeetings είναι μια εφαρμογή διαδικτυακής διάσκεψης ανοιχτού κώδικα. Είναι γραμμένο σε Java και υποστηρίζει πολλούς διακομιστές βάσεων δεδομένων. Παρέχει πολλές δυνατότητες, όπως ηχητική και βιντεοδιάσκεψη, κοινή χρήση οθόνης, εξερευνητής αρχείων, σύστημα εποπτείας χρήστη, προσωπικά μηνύματα και επαφές, ενσωματωμένο ημερολόγιο για σχέδια συσκέψεων και πολλά άλλα. Μπορείτε επίσης να ηχογραφήσετε μια συνεδρία διάσκεψης. Παρέχει SOAP/REST API και πολλαπλές προσθήκες για εύκολη ενσωμάτωση με Moodle, Jira, Joomla, Confluence και άλλα.
Προαπαιτούμενα
- Μια παρουσία διακομιστή Vultr CentOS 7 με τουλάχιστον 4 GB RAM.
- Ένας χρήστης sudo .
- Ένα όνομα τομέα στραμμένο προς τον διακομιστή.
Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε 192.168.1.1
ως δημόσια διεύθυνση IP και meetings.example.com
ως όνομα τομέα που δείχνει προς την παρουσία του Vultr. Βεβαιωθείτε ότι έχετε αντικαταστήσει όλες τις εμφανίσεις του παραδείγματος διεύθυνσης IP και ονόματος τομέα με το πραγματικό.
Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το CentOS 7 . Μόλις το σύστημά σας ενημερωθεί, προχωρήστε στην εγκατάσταση Java.
Εγκαταστήστε Java
Το OpenMeetings είναι γραμμένο σε Java, επομένως απαιτεί Java Runtime Environment (JRE) για να λειτουργήσει. Κατεβάστε το πιο πρόσφατο διαθέσιμο πακέτο Oracle SE JDK 8 RPM, το οποίο περιλαμβάνει και JRE και JDK.
wget --header 'Cookie: oraclelicense=a' http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm
Εγκαταστήστε το πακέτο που έχετε λάβει.
sudo rpm -Uvh jdk-8u161-linux-x64.rpm
Εάν η Java έχει εγκατασταθεί με επιτυχία, τότε θα μπορείτε να επαληθεύσετε την έκδοσή της.
java -version
Θα δείτε την ακόλουθη έξοδο.
[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)
Προτού προχωρήσουμε περαιτέρω, θα χρειαστεί να ρυθμίσουμε τις μεταβλητές JAVA_HOME
και JRE_HOME
περιβάλλον. Βρείτε την απόλυτη διαδρομή του εκτελέσιμου JAVA στο σύστημά σας.
readlink -f $(which java)
Θα δείτε μια παρόμοια έξοδο.
[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_161/jre/bin/java
Τώρα, ορίστε τις μεταβλητές JAVA_HOME
και JRE_HOME
περιβάλλον σύμφωνα με τη διαδρομή του καταλόγου 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
Εκτελέστε το bash_profile
αρχείο.
source ~/.bash_profile
Τώρα μπορείτε να εκτελέσετε την echo $JAVA_HOME
εντολή για να βεβαιωθείτε ότι έχει οριστεί η μεταβλητή περιβάλλοντος.
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_161
Εγκατάσταση Εξαρτήσεων
Εγκαταστήστε τις βιβλιοθήκες ImageMagick και GhostScript.
sudo yum -y install epel-release
sudo yum -y install ImageMagick ghostscript
Το ImageMagick παρέχει υποστήριξη για τη μεταφόρτωση εικόνων και την εισαγωγή τους στον πίνακα. Το GhostScript σάς δίνει τη δυνατότητα να ανεβάσετε αρχεία PDF στον πίνακα.
Επαληθεύστε την έκδοση του ImageMagick και του GhostScript για να βεβαιωθείτε ότι έχουν εγκατασταθεί με επιτυχία.
[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.
Επιπλέον, θα χρειαστεί επίσης να εγκαταστήσουμε είτε το Apache OpenOffice είτε το LibreOffice στο σύστημα. Εγκατάσταση είτε από αυτά θα επιτρέψουν OpenMeetings να εισαγάγετε τα αρχεία σε μορφή εγγράφου του Office, όπως .doc
, .docx
, .ppt
, .pptx
, ή .xlx
. Σε αυτό το σεμινάριο, θα εγκαταστήσουμε το Apache OpenOffice.
Μεταβείτε στον προσωρινό κατάλογο και πραγματοποιήστε λήψη του 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
Εξαγάγετε το αρχείο και εγκαταστήστε όλα τα πακέτα 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
Για να ελέγξετε εάν το OpenOffice έχει εγκατασταθεί σωστά και λειτουργεί, πληκτρολογήστε openoffice4 -h
στη γραμμή εντολών. Θα εκτυπώσει την έκδοσή του και μια σύντομη βοήθεια.
[user@vultr ~]$ openoffice4 -h
OpenOffice 4.1.5 415m1(Build:9789)
Usage: soffice [options] [documents...]
Options:
-minimized keep startup bitmap minimized.
...
Εγκαταστήστε το αποθετήριο RPMFusion στο σύστημά σας καθώς παρέχει προκατασκευασμένα πακέτα για FFmpeg και Sound eXchange (SoX).
sudo rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
Εγκαταστήστε τα FFmpeg και SoX.
sudo yum -y install ffmpeg sox
Τα FFmpeg και SoX θα επιτρέψουν την εγγραφή της συνάντησης. Θα βοηθήσουν επίσης στην εισαγωγή αρχείων πολυμέσων όπως .avi
, .flv
, .mov
και .mp4
στον πίνακα. Επαληθεύστε την εγκατάσταση ελέγχοντας τις εκδόσεις τόσο του FFmpeg όσο και του 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)
Εγκαταστήστε το PostgreSQL
Το OpenMeetings υποστηρίζει πολλούς τύπους διακομιστών βάσεων δεδομένων, όπως MySQL, PostgreSQL, Apache, Derby και Oracle. Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε τον διακομιστή PostgreSQL για να φιλοξενήσουμε τη βάση δεδομένων OpenMeeting.
Το PostgreSQL είναι ένα αντικειμενοσχεσιακό σύστημα βάσης δεδομένων και είναι γνωστό για τη σταθερότητα και την ταχύτητά του. Το προεπιλεγμένο yum
αποθετήριο περιέχει μια παλιά έκδοση της PostgreSQL, επομένως προσθέστε το αποθετήριο PostgreSQL για την πιο πρόσφατη έκδοση της εφαρμογής στο σύστημα.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Εγκαταστήστε τον διακομιστή βάσης δεδομένων PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Αρχικοποιήστε τη βάση δεδομένων.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Ξεκινήστε τον διακομιστή PostgreSQL και ενεργοποιήστε τον να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Αλλάξτε τον κωδικό πρόσβασης για τον προεπιλεγμένο χρήστη PostgreSQL.
sudo passwd postgres
Συνδεθείτε ως χρήστης PostgreSQL.
sudo su - postgres
Δημιουργήστε έναν νέο χρήστη PostgreSQL για τον χρήστη OpenMeetings.
createuser openmeetings
Μπορείτε να χρησιμοποιήσετε οποιοδήποτε όνομα χρήστη αντί για openmeetings
. Μεταβείτε στο κέλυφος PostgreSQL.
psql
Ορίστε έναν κωδικό πρόσβασης για τον νέο χρήστη για τη βάση δεδομένων OpenMeetings.
ALTER USER openmeetings WITH ENCRYPTED password 'DBPassword';
Αντικαταστήστε DBPassword
με έναν ασφαλή κωδικό πρόσβασης. Δημιουργήστε μια νέα βάση δεδομένων για την εγκατάσταση του OpenMeetings.
CREATE DATABASE openmeetings OWNER openmeetings;
Έξοδος από το psql
κέλυφος.
\q
Εναλλαγή στο sudo
χρήστη.
exit
Επεξεργαστείτε το pg_hba.conf
αρχείο για να ενεργοποιήσετε τον έλεγχο ταυτότητας βάσει MD5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Βρείτε τις ακόλουθες γραμμές και αλλάξτε τις τιμές στη METHOD
στήλη από 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
Μόλις ενημερωθεί, η διαμόρφωση θα μοιάζει με αυτό.
# 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
Save the file and exit from the editor. Restart PostgreSQL so that the changes can take effect.
sudo systemctl restart postgresql-10
Installing OpenMeetings
Since all the required dependencies are installed. Create a new user for OpenMeetings. Using a non-root user for running OpenMeetings is recommended for the security of the server.
sudo adduser -b /var -s /sbin/nologin openmeetings
The above command will also create the home directory of the openmeetings
user in /var/openmeetings
.
Check the Apache OpenMeetings download page to obtain the link to the latest available release. Download the OpenMeetings archive.
cd /tmp
wget http://www-us.apache.org/dist/openmeetings/4.0.1/bin/apache-openmeetings-4.0.1.tar.gz
Extract the archive into the /var/openmeetings
directory.
sudo tar xf apache-openmeetings-4.0.1.tar.gz -C /var/openmeetings
Provide ownership of the files to the OpenMeetings user we have created earlier.
sudo chown -R openmeetings:openmeetings /var/openmeetings
Before we start the application, we will need to modify the firewall to allow ports 5080
and 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
You can now start the application.
sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings
You can now access http://192.168.1.1:5080/openmeetings
in your favorite browser. You will see the welcome screen with instructions to install GhostScript.
Since we have already installed GhostScript, proceed further. On next interface, you will be prompted to provide database server details. Select database type "PostgreSql
" and provide your database server details that you configured during PostgreSQL installation.
Click on the "Check
" button and you should get the message: "Database check was successful
". Provide your administrator account details and a group name in the next interface.
Configure the basic settings of your installation; such as to allow self-registration, email verification, and default language. Also, provide your SMTP server details. If you do not have an SMTP server ready than you can also provide the SMTP details later in the administrator dashboard.
It will ask you for the path to the binaries of different applications. Provide /usr/bin
as the path for ImageMagick, FFmpeg, and SoX. If the application is providing errors for the path entered, then you can use which <binary_name>
to find the absolute path to the binary. For example, which ffmpeg
should give you /usr/bin/ffmpeg
as output. Use /opt/openoffice4
as the path to the OpenOffice binaries.
You can skip the configuration on the next interface since we are going to use the default values. Finally, click the "Finish
" button to install the application and write the database.
OpenMeetings is now installed on your server. To make it more production friendly, we will setup Systemd to manage the OpenMeetings server. We will also configure Nginx with Let's Encrypt SSL as the secured reverse proxy to serve the application.
Setting up Systemd
Though we can easily start and stop the application using the command above, it is recommended to set up a Systemd service unit to manage the application. This will also ensure that the service is automatically started on boot time and failures.
Stop the OpenMeetings server either by pressing "Ctrl+C
" or by killing the shell of the openmeetings
user.
sudo pkill -KILL -u openmeetings
Δημιουργήστε ένα νέο αρχείο μονάδας Systemd για το διακομιστή OpenMeetings.
sudo nano /etc/systemd/system/openmeetings.service
Συμπληρώστε το αρχείο.
[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
Ξεκινήστε τον διακομιστή OpenMeetings και ενεργοποιήστε τον να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start openmeetings
sudo systemctl enable openmeetings
Για να ελέγξετε την κατάσταση της υπηρεσίας, μπορείτε να εκτελέσετε τα εξής.
sudo systemctl status openmeetings
Θα δείτε μια παρόμοια έξοδο.
[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.
Ρυθμίστε το Nginx ως Reverse Proxy
Από προεπιλογή, το OpenMeetings ακούει στη θύρα 5080
. Εάν η σύνδεση μεταξύ του προγράμματος περιήγησης και του διακομιστή δεν είναι κρυπτογραφημένη με SSL, τότε οι συνδέσεις και άλλες πληροφορίες θα αποστέλλονται χρησιμοποιώντας απλό κείμενο. Αυτό μπορεί να είναι μια πιθανή απειλή, καθώς κάποιος που κρυφακούει το δίκτυο μπορεί να λάβει τις πληροφορίες. Για να μετριαστεί αυτό το ζήτημα, θα ρυθμίσουμε το Nginx ως τον αντίστροφο διακομιστή μεσολάβησης που θα ακούει την προεπιλεγμένη θύρα HTTPS και θα μεταφέρει όλα τα αιτήματα στον διακομιστή OpenMeetings.
Εγκαταστήστε το Nginx.
sudo yum -y install nginx
Ξεκινήστε το Nginx και ενεργοποιήστε το να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start nginx
sudo systemctl enable nginx
Εγκαταστήστε το Certbot, το οποίο είναι η εφαρμογή πελάτη για το Let's Encrypt CA.
sudo yum -y install certbot
Για να μπορέσετε να ζητήσετε τα πιστοποιητικά, θα πρέπει να επιτρέψετε τις θύρες 80
και 443
ή το πρότυπο HTTP
και τις HTTPS
υπηρεσίες μέσω του τείχους προστασίας.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Σημείωση: Για να αποκτήσετε πιστοποιητικά από το Let's Encrypt CA, ο τομέας για τον οποίο πρόκειται να δημιουργηθούν τα πιστοποιητικά πρέπει να κατευθύνεται προς τον διακομιστή. Εάν όχι, κάντε τις απαραίτητες αλλαγές στις εγγραφές DNS του τομέα και περιμένετε να διαδοθεί το DNS προτού υποβάλετε ξανά το αίτημα πιστοποιητικού. Το Certbot ελέγχει την αρχή τομέα πριν από την παροχή των πιστοποιητικών.
Δημιουργήστε τα πιστοποιητικά SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d meetings.example.com
Τα πιστοποιητικά που δημιουργούνται είναι πιθανό να αποθηκευτούν στο /etc/letsencrypt/live/meetings.example.com/
. Το πιστοποιητικό SSL θα αποθηκευτεί ως fullchain.pem
και το ιδιωτικό κλειδί θα αποθηκευτεί ως privkey.pem
.
Ας κρυπτογραφήσουμε τα πιστοποιητικά λήγουν σε 90 ημέρες, επομένως συνιστάται να ρυθμίσετε την αυτόματη ανανέωση των πιστοποιητικών χρησιμοποιώντας εργασίες Cron.
Ανοίξτε το αρχείο εργασίας cron.
sudo crontab -e
Προσθέστε την ακόλουθη γραμμή στο τέλος του αρχείου.
30 5 * * * /usr/bin/certbot renew --quiet
Η παραπάνω εργασία cron θα εκτελείται καθημερινά στις 5:30 π.μ. Εάν το πιστοποιητικό πρόκειται να λήξει, θα ανανεωθεί αυτόματα.
Τώρα, αλλάξτε το προεπιλεγμένο αρχείο διαμόρφωσης Nginx για να αφαιρέσετε τη default_server
γραμμή.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Δημιουργήστε ένα νέο αρχείο διαμόρφωσης για το OpenMeetings Server.
sudo nano /etc/nginx/conf.d/meetings.example.com.conf
Συμπληρώστε το αρχείο.
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";
}
}
Ελέγξτε για σφάλματα στο νέο αρχείο διαμόρφωσης.
sudo nginx -t
Εάν δείτε την ακόλουθη έξοδο, η διαμόρφωση είναι χωρίς σφάλματα.
[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
Εάν έχετε λάβει κάποιο είδος σφάλματος, φροντίστε να ελέγξετε ξανά τη διαδρομή προς τα πιστοποιητικά SSL. Επανεκκινήστε τον διακομιστή ιστού Nginx για να εφαρμόσετε την αλλαγή στη διαμόρφωση.
sudo systemctl restart nginx
Για να μπορέσετε να αρχίσετε να χρησιμοποιείτε την εφαρμογή στον ασφαλή ιστότοπο SSL, θα χρειαστεί να κάνετε μια αλλαγή διαμόρφωσης στο OpenMeetings. Συνδεθείτε στον πίνακα ελέγχου διαχείρισης του OpenMeetings και μεταβείτε στο " Administration >> Configuration
". Στον πίνακα ID, κλειδί και τιμή. ��ρείτε application.base.url
. Αλλάξτε την τιμή του σε https://meetings.example.com
σύμφωνα με το όνομα τομέα σας. Αποθηκεύστε τη διαμόρφωση κάνοντας κλικ στο εικονίδιο αποθήκευσης παραπάνω.
Επανεκκινήστε την υπηρεσία OpenMeetings.
sudo systemctl restart openmeetings
Τώρα, μπορείτε να περιηγηθείτε στο https://meetings.example.com
χρησιμοποιώντας το αγαπημένο σας πρόγραμμα περιήγησης ιστού και να συνδεθείτε για να χρησιμοποιήσετε την εφαρμογή.
Συγχαρητήρια, το Apache OpenMeetings είναι πλέον εγκατεστημένο στον διακομιστή σας. Μπορείτε να προσκαλέσετε τους φίλους σας και να αρχίσετε να χρησιμοποιείτε το OpenMeetings για online συνέδρια.