如何在CentOS 7上安装OpenMeetings

Apache OpenMeetings是一个开源Web会议应用程序。它是用Java编写的,并且支持多个数据库服务器。它提供许多功能,例如音频和视频会议,屏幕共享,文件浏览器,用户审核系统,私人消息和联系人,用于会议计划的集成日历等等。您也可以录制会议会话。它提供SOAP / REST API和多个插件,可轻松与Moodle,Jira,Joomla,Confluence等集成。

先决条件

  • 具有至少4GB RAM的Vultr CentOS 7服务器实例。
  • 一个sudo的用户
  • 指向服务器的域名。

在本教程中,我们将使用192.168.1.1公共IP地址和meetings.example.com指向Vultr实例的域名。请确保将所有示例IP地址和域名替换为实际的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_HOMEJRE_HOME环境变量。在系统中找到JAVA可执行文件的绝对路径。

readlink -f $(which java)

您将看到类似的输出。

[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_161/jre/bin/java

现在,根据Java目录的路径设置JAVA_HOMEJRE_HOME环境变量。

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

为OpenMeetings用户创建一个新的PostgreSQL用户。

createuser openmeetings

您可以使用任何用户名代替openmeetings。切换到PostgreSQL shell。

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列中的值从更改identmd5

# 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

保存文件并退出编辑器。重新启动PostgreSQL,以使更改生效。

sudo systemctl restart postgresql-10

安装OpenMeetings

由于所有必需的依赖项均已安装。为OpenMeetings创建一个新用户。为了服务器的安全性,建议使用非root用户运行OpenMeetings。

 sudo adduser -b /var -s /sbin/nologin openmeetings

上面的命令还将在中创建openmeetings用户的主目录/var/openmeetings

检查Apache OpenMeetings下载页面,以获取指向最新可用版本的链接。下载OpenMeetings档案。

cd /tmp
wget http://www-us.apache.org/dist/openmeetings/4.0.1/bin/apache-openmeetings-4.0.1.tar.gz

将存档解压缩到/var/openmeetings目录中。

sudo tar xf apache-openmeetings-4.0.1.tar.gz -C /var/openmeetings

向我们先前创建的OpenMeetings用户提供文件的所有权。

sudo chown -R openmeetings:openmeetings /var/openmeetings

在启动应用程序之前,我们需要修改防火墙以允许端口50801935

sudo firewall-cmd --zone=public --permanent --add-port=5080/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1935/tcp
sudo firewall-cmd --reload

您现在可以启动应用程序。

sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings

您现在可以http://192.168.1.1:5080/openmeetings在自己喜欢的浏览器中访问。您将看到欢迎屏幕,其中包含安装GhostScript的说明。

如何在CentOS 7上安装OpenMeetings

由于我们已经安装了GhostScript,因此请继续进行。在下一个界面上,系统将提示您提供数据库服务器详细信息。选择数据库类型“ PostgreSql”,并提供您在PostgreSQL安装期间配置的数据库服务器详细信息。

如何在CentOS 7上安装OpenMeetings

单击“ Check”按钮,您将收到消息:“ Database check was successful”。在下一个界面中提供您的管理员帐户详细信息和组名。

如何在CentOS 7上安装OpenMeetings

配置安装的基本设置;例如允许自我注册,电子邮件验证和默认语言。另外,提供您的SMTP服务器详细信息。如果您尚未准备好SMTP服务器,则稍后还可以在管理员仪表板中提供SMTP详细信息。

如何在CentOS 7上安装OpenMeetings

它将询问您通往不同应用程序二进制文件的路径。提供/usr/bin作为ImageMagick,FFmpeg和SoX的路径。如果应用程序为输入的路径提供了错误,则可以which <binary_name>用来查找二进制文件的绝对路径。例如,which ffmpeg应该给您/usr/bin/ffmpeg作为输出。使用/opt/openoffice4的路径OpenOffice的二进制文件。

如何在CentOS 7上安装OpenMeetings

由于我们将使用默认值,因此您可以在下一个界面上跳过配置。最后,单击“ Finish”按钮以安装应用程序并编写数据库。

现在,OpenMeetings已安装在您的服务器上。为了使生产更加友好,我们将设置Systemd来管理OpenMeetings服务器。我们还将使用“让我们加密SSL”作为安全的反向代理来配置Nginx,以为应用程序提供服务。

设置系统

尽管我们可以使用上面的命令轻松地启动和停止应用程序,但是建议设置Systemd服务单元来管理应用程序。这还将确保在启动时和出现故障时自动启动服务。

通过按“ Ctrl+C”或杀死openmeetings用户的外壳来停止OpenMeetings服务器。

sudo pkill -KILL -u openmeetings

为OpenMeetings Server创建一个新的Systemd单位文件。

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设置为反向代理

默认情况下,OpenMeetings侦听port 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或标准HTTPHTTPS服务通过防火墙。

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服务器创建一个新的配置文件。

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 Web服务器以实现配置更改。

sudo systemctl restart nginx

在开始使用SSL安全站点上的应用程序之前,您需要在OpenMeetings中进行配置更改。登录到您的OpenMeetings管理控制台,然后导航到“ Administration >> Configuration”。在ID,键和值表中;找到application.base.urlhttps://meetings.example.com根据您的域名更改其值。通过单击上方的保存图标来保存配置。

如何在CentOS 7上安装OpenMeetings

重新启动OpenMeetings服务。

sudo systemctl restart openmeetings

现在,您可以https://meetings.example.com使用自己喜欢的Web浏览器浏览并登录以使用该应用程序。

恭喜,您服务器上现已安装了Apache OpenMeetings。您可以邀请您的朋友并开始使用OpenMeetings进行在线会议。



Leave a Comment

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。