Openmeetings4.0.0二次开发日志(二)linux下安装Openmeetings4.0.0

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zoroduyu/article/details/78639049

本来打算在这篇博客讲一讲webservice调用Openmeetings的实例的,想一想还是决定先讲一讲Openmeetings4.0.0在linux上的安装。
Openmeetings在网上有很多安装教程,我在安装的时候参考了一些网上的资料,但也遇到了很多网上并未提及的问题,我将会在安装过程中一并提出来。
首先来看要需要安装的东西:

  1. java环境
  2. Openmeetings
  3. ImageMagick:这个插件能使你启用图像上传功能并将图片导入到白板。
  4. GhostScript:这个插件能使你把pdf文件上传并导入到白板。
  5. FFMpeg:这个插件很关键,能使你启用录制功能和将上传的.avi,.flv,.mov和.mp4格式的文件导入到白板。(但我实际测试中并不能上传.flv文件,因为在选择文件的时候根本就看不到.flv的文件,目前尚不知道该bug原因。)
  6. LibreOffice:这个插件主要使.doc,.docx,.ppt,.pptx,…所有Office文档能够导入到白板中。
  7. SoX:这个插件主要协助用于协助Openmeetings处理音频文件。
  8. mysql。当然,openmeetings有自带的数据库,假如使用它自带的,就不需要安装mysql了。

当然,以上ImageMagick, GhostScript,FFMpeg,LibreOffice,SoX这些插件不装行不行?也行,并且不会影响Openmeetings的核心功能——视频会议。上面插件主要影响的功能集中在文件上传和导入白板方面,所以如果你只是想用Openmeetings的视频会议,共享屏幕的功能,上面的插件完全可以不装。本次安装的linux版本为centOs7。废话不多说,下面就正式开始安装:

  • linux下java环境的安装,这个就不再叙述了,网上相关资料太多,随便捡一篇来看看就行了
  • Openmeetings安装:没有安装包的童鞋看过来。Openmeetings的linux安装包下载链接:点击下载tar包的版本
    Openmeetings的zip安装包下载链接:点击下载zip包
    在linux系统里面用zip包或tar包都行,windows推荐zip包。
    下载完安装包后,上传到linux上,运行解压命令,这里使用tar包:
 tar -zxvf  apache-openmeetings-4.0.0.tar.gz
  • 安装ImageMagick:直接用yum安装:
yum install ImageMagick      
  • 安装GhostScript:
    yum install ghostscript     
    查看安装结果   
    gs -version      
  • 安装libreoffice
yum install libreoffice.x86_64 
  • 安装SoX:
yum install sox  
tar zxvf ffmpeg-3.4.tar.gz
cd ffmpeg-3.4
./configure  

如果出现以下提示:
yasm/nasm not found or too old. Use –disable-yasm for a crippled build.
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file “config.log” produced by configure as this will help
solve the problem.
则需要安装下载yasm ,点击进入下载页面

tar zxvf yasm-1.3.0.tar.gz  
cd yasm-1.3.0  
./configure 
make  
make install  

安装yasm后回到ffmpeg目录

./configure  
make  
make install  
ffmpeg -version  

若正确出现版本信息,则说明安装成功。接下来启动,进入Openmeetings的安装目录:

nohup  ./red5.sh  & 

查看启动信息:

netstat  -tunlp

若出现如下画面:

看到5080端口启动即可。然后访问:http://192.168.40.130:5080/openmeetings
当然,你需要把ip地址替换成你虚拟机的ip。如出现以下画面,则说明启动成功:
这里写图片描述

注意,最好用google浏览器访问,如果像我一样喜欢用360急速浏览器,则需要调到急速模式访问。
如果看不到该页面,先检查防火墙设置,把防火墙关掉或者设置开启5080端口。centOs7防火墙相关命令如下:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态

如果防火墙没问题,进入Openmeetings安装目录下的log目录,cat命令查看red5.log文件。

点击 > 图案,进入下一步
这里写图片描述
如果你要选择mysql数据,则需要在安装目录下面的lib文件夹中加入java连接mysql数据库的jar包。
这里写图片描述
填入相关信息,点击下一步:
这里写图片描述
可以不填,直接下一步:
这里写图片描述

若没有上面说的插件,这里可以忽略它的提醒强制进入下一步。这里主要说一下装了插件的,前面的三个插件的路径不填(这里不填的话就会造成一个文件上传的bug,我会在后面提到并讲如何修复它),因为linux下装的这几个插件都可以不用进入安装目录直接用命令就可访问,就跟设置了环境变量一样。最后libreoffice用的是yum安装,安装目录为/usr/lib64/libreoffice。注意,这里不可以写/usr/lib64/libreoffice/program。因为Openmeetings用其内置的jodconverter去访问时,会自动加上/program目录,如果这里我们自己加上/program反而会报错。在后面使用过程中若出现Failed to open display则需要启动libreoffice服务。命令如下:

soffice --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard

该命令需要占用8100端口。当然,在后面使用过程中你会发现一个大坑——你根本无法上传office类型的文件。。。所以配置这个插件目前没有多大的鸟用,看看官方在后面的更新中会不会修复这个bug吧。

一直点击下一步,然后点击finnish。
这里写图片描述

点击输入应用程序则跳转到登录页面:
这里写图片描述

至此,Openmeetings的安装已经大功告成。但是。。。。。
有一些问题,你有没有发现登录页面的登录和注册按钮是英文,而且,当你用你刚开始设置的管理员用户登录时,会发现是英文,如下图:

这里写图片描述

造成这个的原因是因为在Openmeetings的源代码中,默认为英文。那么,怎么解决这个问题喃?
切换到Openmeetings的根目录下的webapps/openmeetings/languages目录,如下:

cd /software/OM/webapps/openmeetings/languages

vim  languages.xml

运行vim命令,你会看到:

这里写图片描述

看到上面id为1和id为11的值了么,一个为英语,一个为简体中文。在Openmeetings的源代码中默认使用id为1的值。所以,如果想默认中文,只需要将id为1的code和值设置为id=11的code和值然后重启就行了。
另外,你需要在linux里开启所有的端口,Openmeetings的所有功能才能正常使用。Openmeetings所使用的所有端口如下:

这里写图片描述

上图所示的9999,1935,5080,5701,54327(注意这个是udp的)都需要开启,开启端口号的命令:

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

当然如果不想一个一个的开端口,直接关闭防火墙也行。

Openmeetings目前我发现的还有一个问题,当你进入一个可以上传文件的房间,点击上传一张图片时:

这里写图片描述

会出现报错画面:

这里写图片描述

为什么会出现这个错误喃?我们先来看看报错信息,进入Openmeetings目录下的log目录,cat命令查看openmeetings.log的日志信息:

这里写图片描述

从报错中我们可以得到这么两点关键信息:

  1. 报空指针的错误。
  2. org.apache.openmeetings.core.converter.BaseConverter这个类的getPath方法的95行报错。

那么我们打开源代码,找到这个类:

这里写图片描述

那么,这一行报错只有一个可能,上面传入的cfg变量为空,那么我们进入cfgDao.getString(key, “”)这个方法:

这里写图片描述

这里我就直接说了,当我去打印出Configration的toString方法后,发现它其实是一个映射配置信息表的实体bean。当我们上传图片时,Openmeetings会调用ImageMagick插件去转换这张图片,这时它会从数据库读取ImageMagick的路径,但由于之前我们配置ImageMagick路径时是没有填任何数据的,所以这里变量c不会为null,但c.getValue()得到它的路径的方法会返回空,也就造成了之前那个空指针的错误。那么,既然问题找到了,就好解决了,修改代码如下:

这里写图片描述

我们给它多加一个条件,使它的路径不为null时,才返回路径的值,否则返回空字符串。

源代码修改完了,我们怎么使它生效喃?按照常理来说应该重新打包部署,可惜我在打包时遇见以下错误:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.502 s
[INFO] Finished at: 2017-11-26T22:29:38+08:00
[INFO] Final Memory: 16M/159M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:buildnumber-maven-plugin:1.4:create (default) on project openmeetings-parent: Cannot get the revision information from the scm repository :
[ERROR] Exception while executing SCM command. Error while executing command. Error while executing process. Cannot run program "git" (in directory "D:\Users\lenovo\git\openmeetings"): CreateProcess error=2, 系统找不到指定的文件。
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

搞了好久都没解决这个错误,有知道的童鞋可以指点一下,感激不尽。

那么,打包问题解决不了,怎么让我们修改的源代码生效喃?我采用了一个曲线救国的方法,那就是把eclipse编译好的.class文件放到jar包中替换掉,再把linux中的相应jar包替换掉即可。你可以在这里下载我已经修改好的jar包
将jar包下载下来后,运行下面的命令放入webapps/openmeetings/WEB-INF/lib下替换掉原有的jar包即可。

cp openmeetings-db-4.0.0.jar /software/OM/webapps/openmeetings/WEB-INF/lib

然后重启服务器,再上传图片,即可成功。

下次更新的时候,我会讲一些用webservice调用Openmeetings接口的实例,感兴趣的童鞋可以持续关注哦。

猜你喜欢

转载自blog.csdn.net/zoroduyu/article/details/78639049