如何在CentOS 7上安装OpenMeetings
Xiyao739
・23 分钟阅读
使用不同的系统?
Apache OpenMeetings是一个开放源代码的web会议应用程序,它是用Java编写的,支持多种数据库服务器,它提供了音视频会议,屏幕共享,文件资源管理器,用户审核系统,你还可以记录会议会话,它提供了SOAP/REST API和多个插件,可以轻松地与Moodle,jira,joomla,confluence等集成。
前提条件
- 有至少4GB RAM的CentOS 7服务器实例,
- 一个sudo用户。
- 指向服务器的域名,
对于本教程,我们会使用192.168.1.1
作为公共IP地址和meetings.example.com
,作为该实例指向的域名,请确保将例子IP地址和域名的所有匹配项替换为实际的。
使用向导更新基本系统如何更新Centos 7 ,系统更新后,继续安装Java 。
安装java
OpenMeetings是用Java编写的,因此它需要Java运行时环境(JRE ),下载最新的可用Oracle SE JDK 8RPM包,其中包括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目录的路径设置JAVA_HOME
和JRE_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和声音交换(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
shell退出。
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
保存文件并退出编辑器,重新启动PostgreSQL以使更改生效。
sudo systemctl restart postgresql-10
安装OpenMeetings
由于所有必需的依赖项都已安装,为OpenMeetings创建新用户,建议使用非root用户运行OpenMeetings以确保服务器的安全性。
sudo adduser -b /var -s /sbin/nologin openmeetings
上面的命令还会在/var/openmeetings
中创建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
在启动应用程序之前,我们需要修改防火墙以允许端口5080
和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
你现在可以启动应用程序。
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
"在下一个界面中提供管理员帐户详细信息和组名。
它将要求你找到不同应用程序的二进制文件的路径,提供/usr/bin
作为ImageMagick,FFmpeg和SoX的路径,如果应用程序为输入的路径提供错误,那么你可以使用which <binary_name>
找到二进制路径的绝对路径,例如,which ffmpeg
应该为你提供/usr/bin/ffmpeg
作为输出,使用/opt/openoffice4
作为OpenOffice二进制文件的路径。
最后,单击"Finish"按钮安装应用程序,并且写入数据库。
OpenMeetings现在已安装在你的服务器上,我们还会使用let's Encrypt SSL配置Nginx作为安全反向代理来服务应用程序。
设置Systemd
虽然我们可以使用上面的命令轻松地启动和停止应用程序,但是建议设置一个SystemD服务单元来管理应用程序,这也会确保服务在启动时和失败时自动启动。
按"Ctrl+C
"或杀死openmeetings
用户的shell来停止OpenMeetings服务器。
sudo pkill -KILL -u openmeetings
为OpenMeetings服务器创建新的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侦听端口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
。
Let's Encrypt证书在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.url
,根据你的域名将它值更改为https://meetings.example.com
,单击上面的保存图标保存配置。
重新启动OpenMeetings服务。
sudo systemctl restart openmeetings
现在,你可以使用你喜欢的浏览器浏览https://meetings.example.com
,并登录使用应用程序。
恭喜,apache OpenMeetings现在已安装在你的服务器上,你可以邀请你的朋友,开始使用OpenMeetings在线会议。