Apache OpenMeetings เป็นโปรแกรมการประชุมผ่านเว็บแบบโอเพนซอร์ส มันเขียนใน Java และรองรับเซิร์ฟเวอร์ฐานข้อมูลหลายตัว มันมีคุณสมบัติมากมายเช่นการประชุมด้วยเสียงและวิดีโอการแชร์หน้าจอการสำรวจไฟล์ระบบการกลั่นกรองผู้ใช้ข้อความส่วนตัวและผู้ติดต่อปฏิทินรวมสำหรับแผนประชุมและอื่น ๆ อีกมากมาย คุณยังสามารถบันทึกเซสชันการประชุมได้ มันมี SOAP / REST API และปลั๊กอินหลายตัวเพื่อรวมเข้ากับ Moodle, Jira, Joomla, Confluence และอื่น ๆ ได้อย่างง่ายดาย
ข้อกำหนดเบื้องต้น
- อินสแตนซ์เซิร์ฟเวอร์ Vultr Ubuntu 16.04 ที่มี RAM อย่างน้อย 4GB
- sudo ผู้ใช้
- ชื่อโดเมนที่ชี้ไปยังเซิร์ฟเวอร์
สำหรับบทช่วยสอนนี้เราจะใช้ 192.168.1.1
เป็นที่อยู่ IP สาธารณะและ meetings.example.com
เป็นชื่อโดเมนที่ชี้ไปยังอินสแตนซ์ Vultr โปรดตรวจสอบให้แน่ใจว่าได้แทนที่ตัวอย่างที่อยู่ IP และชื่อโดเมนทั้งหมดด้วยชื่อจริง
ปรับปรุงระบบฐานของคุณใช้คู่มือ วิธีการปรับปรุง Ubuntu 16.04 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้ง Java
ติดตั้ง Java
OpenMeetings เขียนใน Java ดังนั้นจึงต้องการ Java Runtime Environment (JRE) เพื่อทำงาน เพิ่มที่เก็บ Ubuntu สำหรับ Oracle Java 8
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
ติดตั้ง Java
sudo apt -y install oracle-java8-installer
ตรวจสอบเวอร์ชันของ 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 โดยการติดตั้งแพ็คเกจต่อไปนี้
sudo apt -y install oracle-java8-set-default
คุณสามารถตรวจสอบว่าJAVA_HOME
ถูกตั้งค่าโดยเรียกใช้ต่อไปนี้
echo $JAVA_HOME
คุณจะเห็นผลลัพธ์ที่คล้ายกัน
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
หากคุณไม่เห็นผลลัพธ์ใด ๆ เลยคุณจะต้องออกจากระบบเชลล์ปัจจุบันและกลับเข้าสู่ระบบ
ติดตั้งการพึ่งพา
ติดตั้งไลบรารี ImageMagick และ GhostScript
sudo apt -y install imagemagick ghostscript libxt6 libxrender1
ImageMagick ให้การสนับสนุนในการอัปโหลดภาพและนำเข้าสู่ไวท์บอร์ด GhostScript ช่วยให้คุณสามารถอัปโหลดไฟล์ PDF ไปยังไวท์บอร์ด
ตรวจสอบเวอร์ชั่นของ ImageMagick และ GhostScript เพื่อให้แน่ใจว่าติดตั้งสำเร็จแล้ว
user@vultr:~$ identify -version
Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-07-31 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib
user@vultr:~$ ghostscript -v
GPL Ghostscript 9.18 (2015-10-05)
Copyright (C) 2015 Artifex Software, Inc. All rights reserved.
อีกต่อไปเราจะต้องติดตั้ง Apache OpenOffice หรือ LibreOffice บนระบบ การติดตั้งทั้งสองเหล่านี้จะช่วยให้ OpenMeetings นำเข้าไฟล์ในรูปแบบเอกสาร Office เช่น .doc
, .docx
, .ppt
, หรือ.pptx
.xlx
ในบทช่วยสอนนี้เราจะติดตั้ง Apache OpenOffice
สลับไปที่ไดเรกทอรีชั่วคราวและดาวน์โหลดแพ็คเกจ Apache OpenOffice สำหรับ Ubuntu
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-deb_en-US.tar.gz
แตกไฟล์เก็บถาวรและติดตั้งแพ็กเกจ DEB ทั้งหมด
tar xf Apache_OpenOffice_4.1.5_Linux_x86-64_install-deb_en-US.tar.gz
cd en-US/DEBS
sudo dpkg -i *.deb
sudo dpkg -i desktop-integration/openoffice4.1-debian-menus_4.1.5*.deb
ติดตั้ง PPA สำหรับ FFmpeg เวอร์ชันล่าสุด
sudo add-apt-repository --yes ppa:jonathonf/ffmpeg-3
sudo apt update
ติดตั้ง FFmpeg และ SoX
sudo apt -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 3.4.2-1~16.04.york0.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.9) 20160609
ติดตั้ง PostgreSQL
OpenMeetings รองรับเซิร์ฟเวอร์ฐานข้อมูลหลายประเภทเช่น MySQL, PostgreSQL, Apache Derby และ Oracle ในบทช่วยสอนนี้เราจะใช้ PostgreSQL เพื่อโฮสต์ฐานข้อมูล OpenMeeting
PostgreSQL เป็นระบบฐานข้อมูลเชิงวัตถุที่รู้จักกันดีในเรื่องความเสถียรและความเร็ว ที่เก็บเริ่มต้นของ Ubuntu มี PostgreSQL เวอร์ชันเก่าดังนั้นให้เพิ่มที่เก็บ PostgreSQL
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL
sudo apt -y install postgresql
เริ่มต้นเซิร์ฟเวอร์ PostgreSQL และเปิดใช้งานให้เริ่มโดยอัตโนมัติเมื่อบูตเครื่อง
sudo systemctl start postgresql
sudo systemctl enable postgresql
เปลี่ยนรหัสผ่านสำหรับผู้ใช้ 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
บันทึกไฟล์และออกจากโปรแกรมแก้ไข
การติดตั้ง OpenMeetings
เนื่องจากติดตั้งการพึ่งพาที่จำเป็นทั้งหมดแล้วให้สร้างผู้ใช้ใหม่สำหรับ OpenMeetings แนะนำให้ใช้ผู้ใช้ที่ไม่ใช่รูทเพื่อใช้งาน OpenMeetings เพื่อความปลอดภัยของเซิร์ฟเวอร์
sudo adduser --home /var/openmeetings --disabled-login --disabled-password --gecos "OpenMeetings User" openmeetings
คำสั่งด้านบนจะสร้างโฮมไดเรกทอรีของ openmeetings
ผู้ใช้ /var/openmeetings
ด้วย
ตรวจสอบ หน้าดาวน์โหลด Apache OpenMeetings เพื่อรับลิงค์ไปยังรีลีสล่าสุดที่มี ดาวน์โหลดไฟล์เก็บถาวรของ OpenMeetings
cd /tmp
wget http://www-eu.apache.org/dist/openmeetings/4.0.2/bin/apache-openmeetings-4.0.2.tar.gz
แตกไฟล์เก็บถาวรลงใน /var/openmeetings
ไดเร็กทอรี
sudo tar xf apache-openmeetings-*.tar.gz -C /var/openmeetings
ให้สิทธิ์การเป็นเจ้าของไฟล์แก่ผู้ใช้ OpenMeetings ที่เราสร้างไว้ก่อนหน้านี้
sudo chown -R openmeetings:openmeetings /var/openmeetings
ตอนนี้คุณสามารถเริ่มแอปพลิเคชันได้แล้ว
sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings
ตอนนี้คุณสามารถเข้าถึงได้ http://192.168.1.1:5080/openmeetings
ในเบราว์เซอร์ที่คุณชื่นชอบ คุณจะเห็นหน้าจอต้อนรับพร้อมคำแนะนำในการติดตั้ง GhostScript
เนื่องจากเราได้ติดตั้ง GhostScript แล้วให้ดำเนินการต่อไป ในอินเทอร์เฟซถัดไปคุณจะได้รับแจ้งให้ระบุรายละเอียดเซิร์ฟเวอร์ฐานข้อมูล เลือกประเภทฐานข้อมูล " PostgreSql
" และระบุรายละเอียดเซิร์ฟเวอร์ฐานข้อมูลที่คุณกำหนดค่าในระหว่างการติดตั้ง PostgreSQL
คลิกที่Check
ปุ่ม "" และคุณจะได้รับข้อความ: " Database check was successful
" ระบุรายละเอียดบัญชีผู้ดูแลระบบของคุณและชื่อกลุ่มในอินเทอร์เฟซถัดไป
กำหนดการตั้งค่าพื้นฐานของการติดตั้งของคุณ เช่นอนุญาตให้ลงทะเบียนด้วยตนเองยืนยันอีเมลและภาษาเริ่มต้น นอกจากนี้ให้รายละเอียดเซิร์ฟเวอร์ SMTP ของคุณ หากคุณยังไม่ได้เตรียมเซิร์ฟเวอร์ SMTP คุณสามารถระบุรายละเอียด SMTP ได้ในภายหลังในแดชบอร์ดผู้ดูแลระบบ
คุณจะถูกขอเส้นทางไปยังไบนารีของแอปพลิเคชันต่างๆ ระบุ /usr/bin
เป็นพา ธ สำหรับ ImageMagick, FFmpeg และ SoX หากแอปพลิเคชันระบุข้อผิดพลาดสำหรับเส้นทางที่ป้อนคุณสามารถใช้ which <binary_name>
เพื่อค้นหาเส้นทางที่แน่นอนไปยังไบนารี ตัวอย่างเช่น which ffmpeg
ควรให้ /usr/bin/ffmpeg
ผลลัพธ์เป็น ใช้ /opt/openoffice4
เป็นเส้นทางไปยัง OpenOffice ไบนารี
คุณสามารถข้ามการกำหนดค่าในอินเทอร์เฟซต่อไปเนื่องจากเราจะใช้ค่าเริ่มต้น สุดท้ายให้คลิกFinish
ปุ่ม "" เพื่อติดตั้งแอปพลิเคชันและเขียนฐานข้อมูล
OpenMeetings ได้รับการติดตั้งบนเซิร์ฟเวอร์ของคุณแล้ว ���พื่อให้เป็นมิตรกับการผลิตเราจะตั้งค่า Systemd เพื่อจัดการเซิร์ฟเวอร์ OpenMeetings นอกจากนี้เรายังจะกำหนดค่า Nginx ด้วย Let's Encrypt SSL เป็นพร็อกซีย้อนกลับที่ปลอดภัยเพื่อให้บริการแอปพลิเคชัน
การตั้งค่า Systemd
ขอแนะนำให้ตั้งค่าหน่วยบริการ Systemd เพื่อจัดการแอปพลิเคชัน สิ่งนี้จะช่วยให้มั่นใจได้ว่าบริการจะเริ่มต้นโดยอัตโนมัติในเวลาบูตและความล้มเหลว
หยุดเซิร์ฟเวอร์ OpenMeetings โดยกดCTRL+ Cหรือฆ่าเชลล์ของ openmeetings
ผู้ใช้
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
คุณจะเห็นผลลัพธ์ที่คล้ายกัน
user@vultr:~$ sudo systemctl status openmeetings
● openmeetings.service - OpenMeeting Service
Loaded: loaded (/etc/systemd/system/openmeetings.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2018-04-08 19:08:33 UTC; 52s ago
Main PID: 8788 (java)
CGroup: /system.slice/openmeetings.service
└─8788 /usr/bin/java -Dred5.root=/var/openmeetings -Djava.security.debug=failure -Xms256m
Apr 08 19:08:40 vultr red5.sh[8788]: [INFO] [main] org.apache.catalina.core.StandardService - Starti
Apr 08 19:08:40 vultr red5.sh[8788]: Apr 08, 2018 7:08:40 PM org.apache.catalina.core.StandardEngine
...
ตั้งค่า Nginx เป็น Reverse Proxy
โดยค่าเริ่มต้น OpenMeetings 5080
ฟังพอร์ต หากการเชื่อมต่อระหว่างเบราว์เซอร์และเซิร์ฟเวอร์ไม่ได้เข้ารหัสด้วย SSL การเข้าสู่ระบบและข้อมูลอื่น ๆ จะถูกส่งโดยใช้ข้อความธรรมดา นี่อาจเป็นภัยคุกคามที่อาจเกิดขึ้นขณะที่บางคนกำลังดักข้อมูลบนเครือข่ายอาจได้รับข้อมูล เพื่อบรรเทาปัญหานี้เราจะติดตั้ง Nginx เป็น reverse proxy ซึ่งจะรับฟังHTTPS
พอร์ตเริ่มต้นและจะทำการร้องขอทั้งหมดไปยังเซิร์ฟเวอร์ OpenMeetings
ติดตั้ง Nginx
sudo apt -y install nginx
เริ่ม Nginx และเปิดใช้งานให้เริ่มโดยอัตโนมัติในเวลาบูต
sudo systemctl start nginx
sudo systemctl enable nginx
เพิ่มที่เก็บ Certbot
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
ติดตั้ง Certbot ซึ่งเป็นแอปพลิเคชันไคลเอนต์สำหรับ Let's Encrypt CA
sudo apt -y install certbot
หมายเหตุ: ในการรับใบรับรองจาก Let's Encrypt CA โดเมนที่จะสร้างใบรับรองนั้นจะต้องชี้ไปที่เซิร์ฟเวอร์ หากไม่มีให้ทำการเปลี่ยนแปลงที่จำเป็นกับระเบียน DNS ของโดเมนและรอให้ DNS เผยแพร่ก่อนทำการขอใบรับรองอีกครั้ง Certbot ตรวจสอบอำนาจโดเมนก่อนที่จะให้ใบรับรอง
สร้างใบรับรอง SSL
sudo certbot certonly --webroot -w /var/www/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 น. หากใบรับรองถึงกำหนดหมดอายุจะมีการต่ออายุโดยอัตโนมัติ
สร้างไฟล์การกำหนดค่าใหม่สำหรับ OpenMeetings
sudo nano /etc/nginx/sites-available/openmeetings
เติมไฟล์
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 ln -s /etc/nginx/sites-available/openmeetings /etc/nginx/sites-enabled/openmeetings
ตรวจสอบข้อผิดพลาดในไฟล์กำหนดค่าใหม่
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 สำหรับการประชุมออนไลน์