bbb-install

bbb-install.sh 是一个shell脚本,它自动执行设置了BigBlueButton 2.2服务器的分步安装。

只需要几个参数,bbb-install.sh就可以在30分钟内设置并准备好使用BigBlueButton服务器(取决于您的服务器下载和安装包的网络速度)。

例如,给定一个有公共IP地址的Ubuntu 16.04 64位服务器,安装/更新到最新版本的BigBlueButton2.2,通过SSH登录到服务器,先以root身份运行以下命令:

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -a

该命令将下拉最新版本的bbb-install.sh,将其发送到BASH shell解释器,并传递参数-v xenia -22,该参数指定希望安装最新版本的BigBlueButton 2.2.N,-a指定想要安装API演示(这使得在服务器上进行一些快速测试变得很容易)。

注意:如果您的服务器位于防火墙之后(如企业防火墙之后或AWS安全组之后),那么在启动客户端之前,您需要手动确定防火墙,以便将特定的internet连接转发到BigBlueButton服务器。

bbb-install.sh完成时,您将看到一条消息,该消息向您提供一个测试URL,以启动BigBlueButton客户端并加入一个名为“Demo meeting”的会议。

# Warning: The API demos are installed and accessible from:
#
#    http://xxx.xxx.xxx.xxx
#
# and
#
#    http://xxx.xxx.xxx.xxx/demo/demo1.jsp
#
# These API demos allow anyone to access your server without authentication
# to create/manage meetings and recordings. They are for testing purposes only.
# If you are running a production system, remove them by running:
#
#    sudo apt-get purge bbb-demo

当您打开URL时,您应该会看到一个登录来加入 Demo Meeting


输入您的名字并单击Join。BigBlueButton客户机应该在浏览器中加载并提示您加入音频。


点击[x]跳过加入音频。为什么?使用上面的命令,BigBlueButton服务器被配置为只使用一个IP地址(没有安全性),因此,浏览器将阻止对webcam和麦克风的访问。

对于BigBlueButton的生产设置,服务器需要使用传输级别安全性(transport level security, TLS)为web页面提供服务。换句话说,您只能通过HTTP(未加密)而不是HTTPS(加密)访问此服务器,因为服务器当前缺乏为服务器主机名配置的安全套接字级别(SSL)证书。

没有TLS/SSL支持,浏览器将不允许通过内置实时通信(WebRTC)库访问用户的webcam或麦克风。

bbb-install.sh 可以自动请求TLS/SSL证书(来自Let’s Encrypt),并配置BigBlueButton服务器以使用该证书。下面几节将向您展示如何进行。

准备

在运行bbb-install.sh之前,我们强烈建议您:

  • 通读此页中的所有文档
  • 确保您的服务器满足最小的服务器需求
  • 解析到服务器的外部IP地址的完全限定域名(FQDN),如bbb.example.com

要设置FQDN,您需要从域名系统(DNS)提供商(如GoDaddy或Network Solutions)购买一个域名。一旦购买,您将使用DNS提供商提供的web工具创建A Record ,该记录解析为您的BigBlueButton服务器的公共IP地址。(有关如何设置A Record 的详细信息,请查看DNS提供商的文档。)

有了FQDN域名的地方,你可以传递一些额外的参数给bbb-install.sh来拥有它:

  • 请求并安装来自Let’s Encrypt(我们喜欢Let’s Encrypt)的4096位TLS/SSL证书(可选)
  • 安装和配置Greenlight,为用户提供一个简单的前端,使他们能够设置房间、举行在线会议和管理记录。(Greenlight还允许管理员在Greenlight中管理用户帐户)。

一旦BigBlueButton服务器配置了TLS/SSL证书,您的用户就可以使用FireFox和Chrome(推荐的浏览器)通过WebRTC在BigBlueButton会话中访问和共享他们的音频、视频和屏幕。

这里有bbb-install.sh的完整源代码。为了让任何人都可以轻松地使用单个命令运行脚本,我们在https://ubuntu.bigbluebutton.org/bbb.install.sh上托管脚本的最新版本。

选择服务器

有很多可以提供你虚拟专用服务器托管公司BigBlueButton运行。我们在下面列出了一些流行的选择。注意:我们在这里没有做任何推荐,只是列出了一些更受欢迎的选择。

为了快速安装,Digital Ocean提供了两个虚拟服务器,一个是ubuntu16.04 64位,另一个是一个公共IP地址(没有防火墙)。Hetzner提供单一IP地址的专用服务器。

其他流行的选择,如ScaleWay(选择Bare Metal或Pro servers )和谷歌计算引擎,提供了设置在网络地址转换(NAT)之后的服务器。也就是说,它们都有一个内部和外部IP地址。在这些服务器上安装时,bbb-install.sh将检测内部/外部地址并相应地配置BigBlueButton。

另一个流行的选择是亚马逊弹性计算云。我们推荐c5.xlarge(或更大)实例。默认情况下,所有EC2服务器都位于防火墙之后(Amazon称之为安全组)。在EC2上安装BigBlueButton之前,您需要手动确定安全组,在Azure和谷歌计算引擎(GCE)上以类似的方式安装BigBlueButton。(请参见下一节的屏幕截图。)

最后,如果bbb-install.sh无法在NAT之后配置服务器,我们建议按步骤安装BigBlueButton。(完成这些步骤也是了解BigBlueButton如何工作的好方法)。

配置防火墙

如果你想在防火墙后的服务器上安装BigBlueButton,比如Amazon的EC2安全组,你首先需要确定防火墙转发下列端口的传入流量:

  • TCP/IP端口 22(用于SSH)
  • TCP/IP 端口 80/443(用于 HTTP/HTTPS)
  • UDP端口,范围16384 - 32768(用于FreeSWITCH/HTML5客户端RTP流)

如果您正在使用EC2,您还应该为服务器分配一个弹性IP地址,以防止它在重新启动时获得新的IP地址。

在Microsot Azure上,创建实例时,需要添加以下入站端口规则,以便在端口80、443和UDP端口范围16384-32768上启用入站连接:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUxpmZWy-1589724453424)(assets/azure-firewall.png)]

在谷歌计算引擎上,当您创建实例时,您需要启用端口80和443。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QGFtQOmt-1589724453430)(assets/gce-80-443.png)]

创建实例之后,您需要添加一个防火墙规则,以允许端口范围为16384-32768的传入UDP通信。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jsuSgipp-1589724453439)(assets/gce-firewall.png)]

安装视频

以 Digital Ocean 为例,我们把这个视频放在一起,让你快速上手:使用bbb-install.sh在Digital Ocean 上设置BigBlueButton。

使用Amazon EC2,请参阅在EC2上使用bbb-install.sh进行安装。

命令选项

您可以通过传递-h选项来获得帮助。

$ wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -h
Installer script for setting up a BigBlueButton 2.2 server.This script also supports installation of a separate coturn (TURN) server on a separate server.USAGE:bbb-install.sh [OPTIONS]OPTIONS (install BigBlueButton):-v <version>           Install given version of BigBlueButton (e.g. 'xenial-22') (required)-s <hostname>          Configure server with <hostname>-e <email>             Email for Let's Encrypt certbot-x                     Use Let's Encrypt certbot with manual dns challenges-a                     Install BBB API demos-g                     Install GreenLight-c <hostname>:<secret> Configure with coturn server at <hostname> using <secret>-p <host>              Use apt-get proxy at <host>-r <host>              Use alternative apt repository (such as packages-eu.bigbluebutton.org)-d                     Skip SSL certificates request (use provided certificates from mounted volume)-h                     Print helpOPTIONS (install coturn):-c <hostname>:<secret> Configure coturn with <hostname> and <secret> (required)-e <email>             Email for Let's Encrypt certbot (required)EXAMPLESSetup a BigBlueButton server./bbb-install.sh -v xenial-22./bbb-install.sh -v xenial-22 -s bbb.example.com -e info@example.com./bbb-install.sh -v xenial-22 -s bbb.example.com -e info@example.com -g./bbb-install.sh -v xenial-22 -s bbb.example.com -e info@example.com -g -c turn.example.com:1234324Setup a coturn server./bbb-install.sh -c turn.example.com:1234324 -e info@example.comSUPPORT:Source: https://github.com/bigbluebutton/bbb-installCommunity: https://bigbluebutton.org/support

只使用IP地址安装和配置

安装BigBlueButton 2.2(没有主机名或TLS/SSL证书):

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22

就是这样。安装应该在大约15分钟内完成(取决于服务器的internet连接),并显示以下消息:

** Potential problems described below **......
# Warning: The API demos are installed and accessible from:
#
#    http://xxx.xxx.xxx.xxx/demo/demo1.jsp
#
# These API demos allow anyone to access your server without authentication
# to create/manage meetings and recordings. They are for testing purposes only.
# If you are running a production system, remove them by running:
#
#    sudo apt-get purge bbb-demo

该脚本还安装了bbb-demo包,以便您可以立即测试安装。如果要删除API演示,请使用该命令:

sudo apt-get purge bbb-demo

如果希望将此服务器与第三方集成(如Moodle)一起使用,可以使用命令sudo bbb-conf --secret获得BigBlueButton服务器的主机名和共享机密。

# bbb-conf --secretURL: http://xxx.xxx.xxx.xxx/bigbluebutton/Secret: yyyLink to the API-Mate:http://mconf.github.io/api-mate/#server=http://xxx.xxx.xxx.xxx/bigbluebutton/&sharedSecret=yyy

由于bbb-install.sh的默认用法不支持SSL/TLS证书,虽然您可以登录到服务器,但您不能共享音频/视频,因为WebRTC需要SSL/TLS证书。

安装SSL / TLS

bbb-install.sh之前,可以安装SSL/TLS证书,您需要提供以下两项信息:

  • 一个完全限定的域名(FQDN),例如bbb.example.com,它解析为您的服务器的公共IP地址。
  • 一个电子邮件地址。

设置好FQDN之后,使用dig命令检查它是否正确解析为服务器的外部IP地址。

dig bbb.example.com @8.8.8.8

注意:我们使用bbb.example.com作为示例主机名。您可以用真正的主机名来代替检查(以及下面的命令)。

只需要这两部分信息——FQDN 和电子邮件地址——就可以使用bbb-install.sh自动配置带有TLS/SSL证书的BigBlueButton服务器。例如,要使用来自Let’s Encrypt 的TLS/SSL证书安装BigBlueButton 2.2,请使用bbb.example.cominfo@example,输入命令:

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e info@example.com

(同样,你可以用bbb.example.cominfo@example.com 代替您的服务器的FQDN和您的电子邮件地址)。bbb-install.sh脚本还将安装一个核心工作,该作业将自动更新 Let’s Encrypt 证书,这样它就不会过期。酷。

安装在专用网络中

默认安装是针对公开可用的服务器的。这是因为Let’s Encrypt 需要访问nginx,以便自动验证提供的FQDN。

当安装BigBlueButton私有网络,可以手动验证FODN,通过添加选项-x命令行。如:

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e info@example.com -x

确认电子邮件帐号的使用。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:

确认IP地址的使用

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:

将生成一个challenge并显示在控制台中。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.bbb.example.com with the following value:0bIA-3-RqbRo2EfbYTkuKk7xq2mzszUgVlr6l1OWjW8Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

在点击Eneter之前,在DNS中创建一条TXT记录,记录下生成的challenge

_acme-challenge.bbb.example.com.  TXT   "0bIA-3-RqbRo2EfbYTkuKk7xq2mzszUgVlr6l1OWjW8"   60

这样做的缺点是,由于SSL证书在90天后过期,因此必须手动更新证书。在这种情况下,电子邮件在过期前几天发送,下一个命令必须通过控制台执行。

certbot --email info@example.com --agree-tos -d bbb.example.com --deploy-hook 'systemctl restart nginx' --no-bootstrap --manual-public-ip-logging-ok --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory certonly

安装API演示

您可以通过添加-a选项来安装API演示。

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e info@example.com -a

警告:这些API演示允许任何人访问您的服务器,而无需身份验证来创建/管理会议和记录。它们仅用于测试目的。完成测试后,可以使用sudo apt-get purge bbb-demo删除API演示。

安装 Greenlight

Greenlight是Ruby on Rails编写的一个简单的BigBlueButton前端。它允许用户创建帐户,拥有永久的房间,并管理他们的录音。它还允许作为管理员的您管理用户帐户(例如批准或拒绝用户)。

您可以通过添加-g选项来安装Greenlight。

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e info@example.com -g

安装Greenlight后,它将把默认主页重定向到Greenlight。您还可以配置GreenLight来使用OAuth2身份验证。

要启动Greenlight,只需打开服务器的URL,例如https://bbb.example.com/。您应该会看到Greenlight登录页面。

要为Greenlight设置管理员帐户(以便您可以批准/拒绝注册),请输入以下命令:

cd greenlight/
docker exec greenlight-v2 bundle exec rake admin:create

这个命令将创建一个管理帐户并设置一个默认密码。运行此命令后,使用给定的用户名/密码登录并更改默认密码。接下来,选择“Administrator”并选择“Organization”。

然后您可以选择’Site Settings '在左手边,并改变Registration Method 为’Approve/Decline '。


现在可以控制谁在BigBlueButton服务器上创建帐户。有关更多信息,请参见Greenlight管理。

链接/var/bigbluebutton到另一个目录

安装脚本允许您传递一个路径,该路径将用于用/var/bigbluebutton创建一个符号链接

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -m /mnt/test

这允许用户存储/var/bigbluebutton的内容,该内容在单独的卷中可能会变得非常大。

用一个命令做所有的事情

如果你想用TLS/SSL证书和GreenLight来设置BigBlueButton 2.2,你可以用一个命令来完成:

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e info@example.com -g

此外,您可以重新运行相同的命令后更新服务器到最新版本的BiąBlueButton 2.2。我们宣布BiaBlueButton更新到BiaBlueButton-dey邮件列表。

安装TURN服务器

您可以使用bbb-install.sh自动化设置BigBlueButton的TURN服务器的步骤。

注意:此步骤是可选的,但如果您的BigBlueButton服务器在internet上是公开可执行的,并且可能被限制防火墙后的用户访问,则建议这样做。

BigBlueButton通常需要大量UDP端口才能用于WebRTC通信。在一些受网络限制的站点或开发环境中,例如NAT或防火墙后面的那些限制传出UDP连接的站点,用户可能无法将传出UDP连接到您的BigBlueButton服务器。

TURN协议的设计目的是允许基于udp的通信流(如WebRTC)绕过NAT或防火墙,方法是让客户机连接到TURN服务器,然后让TURN服务器代表它们连接到目的地。

您需要一个单独的服务器(而不是BigBlueButton服务器)来设置为TURN服务器。具体你需要:

  • 一个带有公共IP地址的ubuntu18.04服务器

在TURN服务器上,您需要有以下端口(在端口22中)用于BigBlueButton连接(端口3478和443),以及用于coturn(穿透)连接到您的BigBlueButton服务器(49152- 65535)。

Ports Protocol Description
3478 TCP/UDP coturn listening port
443 TCP/UDP TLS listening port
49152-65535 UDP relay ports range

我们推荐Ubuntu 18.04,因为它有一个比Ubuntu 16.04更新的coturn版本。此外,这个TURN服务器不需要非常强大,因为它只会在必要时将通信从BigBlueButton客户端转发到BigBlueButton服务器。例如,Digital Ocean上的双核服务器是一个不错的选择,它提供具有公共IP地址的服务器。

接下来,配置你需要的 TURN 服务器:

  • 一个完全限定的域名(FQDN),带有解析到TURN服务器的外部公共IP地址的DNS条目
  • Let’s Encrypt 的电子邮件地址
  • 密钥(可以是您创建的8到16个字符的随机字符串)

有了上面的信息,您可以使用bbb-install.sh为BigBlueButton设置一个TURN服务器,如下所示:

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -c <FQDN>:<SECRET> -e <EMAIL>

注意,我们省略了-v选项,这导致bbb-install.sh只安装和配置coturn。例如,turn.example.com 使用FQDN, 1234abcd作为共享秘密,info@example.com 作为电子邮件地址,您可以使用该命令为BigBlueButton设置一个TURN 服务器:

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -c turn.example.com:1234abcd -e info@example.com

bbb-install.sh使用Let’s Encrypt 来配置coturn以使用SSL证书。这一个SSL证书,coturn可以访问BigBlueButton服务器在TCP / IP的端口443上。这意味着,如果用户在一个限制所有UDP连接的防火墙后面,TURN服务器可以通过TCP / IP的端口443接受用户的连接,并通过UDP将数据转发到您的BigBlueButton服务器。

有了TURN服务器,您可以通过再次运行bbb-install.sh命令并添加相同的 -c <FQDN>:<SECRET> 来配置BigBlueButton服务器来使用TURN服务器。例如:

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s bbb.example.com -e info@example.com -g -c turn.example.com:1234abcd

您可以为多个BigBlueButton安装共用一个TURN服务器。

下一步

如果您打算将此服务器用于生产,则应该使用该命令卸载API演示:

apt-get purge bbb-demo

您还可以对服务器进行许多定制。

故障排除

打包服务器被阻塞

我们目前在一个Digital Ocean servlet上托管打包,但最近Digital Ocean servlet的IP范围在一些国家被封锁。

如果在安装时遇到困难,可以尝试运行bbb-install.sh命令,但是要更改值

https://ubuntu.bigbluebutton.org/bbb-install.sh

改为

https://packages-eu.bigbluebutton.org/bbb-install.sh
Greenlight未运行

如果在第一次安装Greenlight时出现500 error ,您可以重新启动Greenlight。

Tomcat7未运行

如果在初始安装时看到

# Not running:  tomcat7 or grails LibreOffice

只要再次运行 sudo bbb-conf --check 。Tomcat7的启动时间可能要长一些,而且它不是第一次运行sudo bbb-conf --check

得到帮助

如果您对脚本有反馈,或者需要使用它的帮助,请将问题的详细信息(包括重现错误的步骤等相关信息)发布到BigBlueButton安装邮件列表。

如果您遇到脚本错误(例如没有完成或抛出错误),请打开GitHub问题并提供重现问题的步骤。

限制

如果您在防火墙后运行BigBlueButton,例如在EC2上,此脚本将不会配置您的防火墙。您需要手动配置防火墙。

bbb-install安装指南相关推荐

  1. 在CentOS 6.3 64bit上搭建python高性能框架gevent开发环境

    1.升级python 2.6到python 2.7版本 为了业务需要,请在安装之前将python从2.6.6升级到2.7.10版本.参考博文: http://blog.csdn.net/tao_627 ...

  2. 使shell用结构化命令

    shell--使用结构化命令 使用结构化命令 知识内容: # 改变命令流 # 使用if-then逻辑 # 嵌套if-then # 测试条件 # 高级if-then功能 许多程序在脚本命令之间需要某些逻 ...

  3. 第十五章 如何编写README文档

    README 文档对于开源项目的重要性甚至会超过代码本身.你试想一下,你打开一个 Github 项目,第一时间就会看到 README 文档,而这时候同一类的项目你可能有很多选择,如果这个README不 ...

  4. NFV 2.1安装指南之十 —— Install and Configure vCloud director (VCD)

    @[TOC](NFV 2.1安装指南之十 -- Install and Configure vCloud director (VCD)) 1. Install VCD VCD的安装方式有两种: 基于e ...

  5. 海波龙 11.1.2.4安装指南// hyperion install

    参考信息 https://www.oracle.com/webfolder/technetwork/cn/obe/hyp_epm/kennedy_install/kennedy_obe.htm#t1s ...

  6. Storm 0.9安装指南

    Storm 0.9.2安装指南 0 Storm0.9的亮点 引用网上的描写叙述: "Storm 0.9.0.1版本号的第一亮点是引入了netty transport.Storm网络传输机制实 ...

  7. 10个深度学习软件的安装指南(附代码)

    来源:AI前线 本文长度为2385字,建议阅读4分钟 本文为你介绍10个深度学习软件安装指南. 由于近期论文的需要,我搭建了一个基于 Ubuntu 和英伟达的深度学习环境.尽管已经有很多非常棒的关于英 ...

  8. Facebook Docusaurus 中文文档 安装指南

    此系列文章的应用示例已发布于 GitHub: docusaurus-docs-Zh_CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. 安装指南 Docusaurus 是从全新 ...

  9. 本机安装PaddlePaddle - 安装指南

    简 介: 根据 文档安装指南 介绍了在本机安装PaddlePaddle的步骤. 关键词: PaddlePaddle,pip,安装 #mermaid-svg-RMWtzcncmslaS8dM {font ...

最新文章

  1. 为什么我们很难看到代码 5 分钟前的样子?
  2. Apache-2.2.32安装配置
  3. 手撸一个npm包,安利一下duiba-sprite
  4. linux 串口编程_ARM-Linux开发与MCU开发有何不同?上篇
  5. Yarn取代job/task tracker
  6. 深度学习 500 问!一份火爆 GitHub 的面试手册
  7. 金融运营智能化搞不定?百度智能云有妙方
  8. python爬虫去哪儿网_大型爬虫案例:爬取去哪儿网
  9. 检测客户pc电脑端VC++环境并安装
  10. 梅原对justin wang 真人版
  11. MySql 你知道事务隔离是怎么回事吗?
  12. 使用Log4j进行日志操作
  13. html打开软件连接的代码,《前端开发从零学起》Lesson.7 HTML中超链接的使用方法...
  14. Kubernetes如何删除deployment
  15. Jfinal启动原理及源码简析
  16. java 代码段 执行超时 抛异常_深入理解Java线程状态
  17. 【优化求解】基于matlab生物地理算法求解MLP问题【含Matlab源码 1415期】
  18. 腾讯云,搭建Git服务器
  19. ov5640帧率配置_码率、帧率、分辨率对监控有什么影响?怎么调更合适?
  20. 安卓开发——显示网速

热门文章

  1. Latex公式编号、行内公式、公式内空格、长公式换行、行内连加符号
  2. Matlab:成功解决Too many input arguments
  3. F - 心灵之霞(B - 风之守护plus)
  4. #128221; 百思不得姐 video
  5. 物联网威胁趋势升级 企业网络安全面临挑战
  6. 私域流量企业团队运营工作规划方案甘特图表格
  7. sonic云真机linux单机版部署
  8. 单反相机tf卡用sd卡套稳定吗_单反相机 储存卡百科 选择适合你的存储卡
  9. log4cplus库(一)(简单使用)
  10. 第三方登录之支付宝登录