1.安装依赖和要求
MonaServer基于C++ 11编写, 比如会用到std::thread, std::unique_ptr, 要求GCC版本至少为4.8.2
对于Ubuntu 14.04.2来说, 这是满足的

另外依赖OpenSSL和LuaJIT库
sudo apt-get install libssl-dev
LuaJIT采用源码安装方式, 官网地址
http://luajit.org/download.html
推荐从GitHub上面下载最新源码安装,master就是当前稳定版分支,当前是LuaJIT-2.0.3

git clone http://luajit.org/git/luajit-2.0.git
我发现git资源下载失败,就改为2.0.3版本的源码包下载
wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz
tar zxf LuaJIT-2.0.3.tar.gz
cd LuaJIT-2.0.3
make
sudo make install

2.下载源码编译
git clone https://github.com/MonaSolutions/MonaServer
cd MonaServer
make
如果编译出错, 使用下面的命令清除
make clean
编译完成后,使用
tree -L 2

我们会看到如下目录结构

我们看到除了生成可执行文件MonaServer以外, 各个目录下面会生成一个tmp临时目录用来存放编译生成的中间文件*.o, 最重要的目录是MonaServer, 另两个目录MonaBase和MonaCore仅是提供动态库调用.

3.配置
源码中没有发现配置文件MonaServer.ini, 将会使用默认值. 我们也可以在安装目录手动生成一个配置文件MonaServer.ini
MonaServer.ini中配置项解释:
host: clients和other servers看到的域名或是ip
socketBufferSize: socket接收和发送缓冲区字节大小
threads: Mona线程池线程个数, 通常等于或是大于CPU的virtual or physic core数, 默认会自动探测CPU核数
[application]
dir:包含data和www的目录
[servers]
port:接收其它incoming Servers连接的端口, 否则无法与其它Servers建立连接.注意Servers之间的连接是unencrypted TCP方式, 该端口应该在防火墙内部
targets: 启动时要连接的MonaServer地址, 分号分隔, 每10秒建立一次连接, url中的query部分包含token,比如
targets=192.168.0.2:1936?name=master&arg=val;192.168.0.3:1936
将会生成server对象的动态性质server.name,server.arg
[RTMFP]
port: 侦听incoming RTMFP request的端口,默认1935
keepaliveServer: servers之间keepalive包周期性发送的时间间隔(单位是秒),默认15s, 5s-255s都是合法的
[RTMP]
port: 侦听incoming RTMP request的端口,默认1935
[HTTP]
port: 侦听incoming HTTP request的端口,默认80
timeout: 当没有数据接收时,服务器kill掉所在connection的最长时间, 默认7秒
index: HTTP协议中默认的index文件名, 假如指定, 每个connection将被redirect到此index文件
[WebSocket]
timeout: 当没有数据接收时,服务器kill掉所在connection的最长时间, 默认120秒
[logs]
directory: 写日志文件的目录,默认MonaServer/logs
name: 日志文件名称, 默认log
rotation: 在logs目录下存放日志文件个数

下面是MonaServer.ini的一个样本
;MonaServer.ini
socketBufferSize = 114688
[RTMFP]
port = 1985
keepAlivePeer = 10
keepAliveServer = 15
[logs]
name=log
directory=C:/MonaServer/logs

4.启动
MonaServer包含一些启动参数, 命令行选项仅用作开发和测试情况下, 查看完整的启动参数, 使用

sudo ./MonaServer -h

下面以管理员权限启动MonaServer
sudo ./MonaServer --daemon [--pidfile=/var/run/MonaServer.pid]
下面以命令行方式启动MonaServer:
sudo ./MonaServer --pidfile=/tmp/MonaServer.pid

5.测试
Flash client使用经典的NetConnection方式连接MonaServer
_netConnection.connect("rtmfp://localhost/");
端口默认1935, 如果你在MonaServer.ini另有配置,请添加在localhost之后
下面的路径参数允许你连接到要有的Server Application
_netConnection.connect("rtmfp://localhost/myApplication");
下面我们打算测试MonaServer的功能, 按照MonaServer/FunctionalTests/README.txt的提示, 我们在可执行程序所在目录下面创建两个子目录www和data, 创建相应的符号链接
cd /home/taoyx/program/MonaServer/MonaServer
mkdir -p www
mkdir -p data
ln -s /home/taoyx/program/MonaServer/FunctionalTests/www/FunctionalTests  /home/taoyx/program/MonaServer/MonaServer/www/FunctionalTests
ln -s /home/taoyx/program/MonaServer/FunctionalTests/data/FunctionalTests  /home/taoyx/program/MonaServer/MonaServer/data/FunctionalTests
下面启动MonaServer:

sudo ./MonaServer --pidfile=/tmp/MonaServer.pid

在浏览器中打开
http://localhost/FunctionalTests/FunctionalTests.html
每次点击一个测试项目,运行完后,再选择下一个测试项目,再继续测试.目前发现后面的rtmfp等无法测试通过,需要研究源码,待后续研究.

最后使用Ctrl+C中断MonaServer,结束功能性测试.

参考文献
[1].http://blog.chinaunix.net/uid-11344913-id-4976154.html
[2].http://bbs.chinaffmpeg.com/forum.php?mod=viewthread&tid=254&extra=

[3].http://www.monaserver.ovh/installation.html

Ubuntu 14.04 64bit上编译安装MonaServer并测试相关推荐

  1. 在Ubuntu 14.04 64bit上编译安装xbt tracker

    下文参照如下链接,只是记录了我的所有实际安装过程,仅供各位参考. http://blog.csdn.net/liwf616/article/details/9245901 xbt项目主页 https: ...

  2. 在Ubuntu 14.04 64bit上编译安装Crtmpserver trunk svn 811版本!

    这里仅在 在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务 基础上补充一下在Ubuntu 14.04上编译安装Crtmpserver的方法,以作备忘.因为Ubuntu 1 ...

  3. Ubuntu 14.04 64bit上编译安装simple-rtmp-server(srs)服务器

    下面的操作完全按照参考文献[1]进行,请采用root用户登陆,我这里只是记录了一下我在Ubuntu 14.04上面编译安装的过程.以作今后参考.该篇文章显示了srs提供的一个demo实例,包括实时流的 ...

  4. 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程库源码

    State Threads是一个广受关注的高性能网络线程库,winlin在SRS中做了比较充分的应用,我很遗憾直到现在才精心研究它.下面是我的研究实录,以作备忘. 一.源码编译 下面是在Ubuntu ...

  5. 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出

    2011年那会儿就开始研究rtmp, 但是后来很快又换了公司转作Android移动浏览器项目,就一直没有机会 继续进行下去.现在因为工作需要,我又重新捡使起来, 继续进行中断了几年的工作.下面记录下我 ...

  6. 在Ubuntu 14.04 64bit上升级安装ATS 5.3.2/6.1.1实录

    原由 在开发过程中,意外发现下面的TS API接口在ats 4.1.2上没有定义,但在5.3.x中有定义 bool cacheable = TSHttpTxnIsCacheable(txnp, NUL ...

  7. 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad

    简介 Haroopad:一款让你欲罢不能的Markdown编辑器 身为大程序员,我本来是不需要 Markdown 编辑器的,但是 Haroopad 让我简直欲罢不能,不能再爱更多.跨平台,代码高亮,V ...

  8. 在Ubuntu 14.04 64bit上安装StarUML 2.5版本

    StarUML是来自韩国的一个优秀的UML绘图软件, 原来是免费软件, 现在需要付费购买.当然免费使用功能会有诸多限制. 它支持Windows, Linux和Mac OS等平台. 下面是我在Ubunt ...

  9. 在Ubuntu 14.04 64bit上安装百度云Linux客户端BCloud

    百度云是一个不错的网盘,Bcloud 是一个 Linux 下超赞的客户端, 官网 github: https://github.com/LiuLang/bcloud-packages 和kwplaye ...

最新文章

  1. 2022-2028年中国康养旅游行业市场竞争力分析及发展策略分析报告
  2. 微信如何实施微服务?
  3. python3 RSA加解密
  4. [Android工具]安卓百度云盘百度网盘资源搜索工具,安卓网盘搜索软件
  5. MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
  6. mysql登录、导入导出、用户权限、事务操作汇总大全
  7. 求矩阵中各列数字的和 Exercise08_01
  8. Android应用开发—FragmentManager如何管理fragments
  9. linux清空输入框,Linux uniq 命令
  10. 改变图片局部透明度,实现透明度根据位置不而渐变
  11. 子寅:不会“怼”产品经理,干不了程序员,更干不好脱口秀
  12. 星露谷物语 android 中文版,星露谷物语手机版
  13. java clh_Java多线程编程CLH锁详解
  14. 微信小程序自定义函数返回值
  15. 怎么把PDF分割成几个文件?分享几种分割方法
  16. 电脑系统修复之--Windows系统开机蓝屏 EFI Network 0 for IPv4(XX-XX-XX-XX-XX)boot failed.
  17. 学习笔记之范海鹰微表情识别
  18. bugku-PWN-瑞士军刀解析过程
  19. Oracle触发器分类及使用
  20. C语言 unsigned signed void 关键字和 类型修饰符

热门文章

  1. MailKit帮助类
  2. Python学习笔记第五周
  3. 面向对象编程(OOP)----BLUE大师JS课堂笔记(二)
  4. aml linux 环境,各位辛苦编译DSDT.aml的兄弟,linux是个好工具啊,简单提取
  5. linux 3.4内核初始化,S3C2440移植linux3.4.2内核之内核框架介绍及简单修改
  6. 四川高中计算机学校图片,四川2021年100分能上计算机学校吗
  7. php ad 管理工具,打开AD管理工具连接到指定DC
  8. abaqus高性能服务器怎么用,高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF...
  9. java build path entries 为空_同事的代码简直没法看,我来教你如何更优雅的设计Java异常...
  10. e4a编写文件服务器,e4a教程 联云服务器