帮酷LOGO
0 0 评论
文章标签:Centos  openmeetings  

使用不同的系统?

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_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和声音交换(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

在启动应用程序之前,我们需要修改防火墙以允许端口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指令的欢迎屏幕。

由于已经安装了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

在请求证书之前,你需要通过防火墙允许端口80443或标准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

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在线会议。



文章标签:Centos  openmeetings  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语