工具本身就不做过多介绍了,大家自行前往查看: [ F2ETEST ]
在搭建环境的过程中我遇到了大量的困难,配置起来非常的麻烦,因此想在这里记录一下过程,让后面的同学能借鉴一二。
编辑帖子很辛苦,转载请注明出处,谢谢!
如github官方所说,你需要至少两台机器。本人搭建的环境分别为:
- Centos6.7(x64)
- windows server 2003 standard(x64)
- windows server 2008(x64)
使用的技术:
- guacamole :一种基于H5的远程桌面技术,官网:http://guac-dev.org/。如果不需要多用户登录,搭建此环境即可直接使用。
- HostsShare:跨服务器和浏览器的共享软件。
- Nodejs:就不多说了,官网:https://nodejs.org/
Centos环境部署
1. 修改yum源
-
备份repos文件
mv /etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup
-
下载替换
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
//注意下载的文件要和centos系统版本对应,参考 http://mirrors.aliyun.com/help/centos
-
执行命令
yum clean all
yum clean metadata
yum clean dbcache
yum makecache
2. 安装JAVA环境
- 安装JAVA,配好JAVA_HOME和CLASS_PATH等环境变量
- [ 下载地址 ]
mkdir /usr/java
cd /usr/java
wget http:
tar -zxvf jdk-7u75-linux-x64.gz
vi /etc/profile
JAVA_HOME=/usr/java/jdk1.7.0_75
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
source /etc/profile
java -version
3. 安装tomcat
- [ 下载地址 ]
cd /usr/local/
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.64/bin/apache-tomcat-7.0.64.tar.gz
tar -xzvf apache-tomcat-7.0.64.tar.gz
mv apache-tomcat-7.0.64 tomcat7
cd /etc/init.d
vi tomcat7
-切记不要在tomcat8中部署!-
/* 在tomcat7文件中写入: */
#!/bin/bash
JAVA_HOME=/usr/java/jdk1.7.0_75
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/local/tomcat7
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
执行命令:
chmod 755 tomcat7
chkconfig –add tomcat7
chkconfig –level 234 tomcat7 on
chkconfig –list tomcat7
service tomcat7 start
4. 安装guacamole-server
注:请使用f2etest项目中的war包,作者对guacamole源生代码做了修改,如果用官方的war包会报错。
yum install cairo-devel libpng-devel uuid-devel freerdp* libvncserver-devel openssl-devel
ln -s /usr/local/lib/freerdp/guacsnd.so /usr/lib64/freerdp/
ln -s /usr/local/lib/freerdp/guacdr.so /usr/lib64/freerdp/
mkdir -p /home/guacdshare
chmod 777 /home/guacdshare
tar -xzf guacamole-server-0.9.3.tar.gz
cd guacamole-server-0.9.3
./configure --with-init-dir=/etc/init.d
make
make install
ldconfig
chkconfig --add guacd
chkconfig guacd on
chkconfig --list guacd
service guacd start
netstat -panl | grep guacd
[Guacamole官方安装指南 ]
5. 安装guacamole-client
cp guacamole-0.9.3.war /usr/local/tomcat7/webapps/guacamole.war
mkdir /etc/guacamole
mkdir /root/.guacamole
vi /etc/guacamole/guacamole.properties
贴入代码(内容不用改):
# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port: 4822
enable-websocket: true
enable-clipboard-integration: true
auth-provider: net.sourceforge.guacamole.net.auth.noauth.NoAuthenticationProvider
noauth-config: /etc/guacamole/noauth-config.xml
# auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
# basic-user-mapping: /etc/guacamole/user-mapping.xml
ln -s /etc/guacamole/guacamole.properties /root/.guacamole
vi /etc/guacamole/noauth-config.xml
配置目标服务器,你连接几台就写几台IP,比如192.168.1.5和6分别是我的windows2003和2008的机器
<configs>
<config name="f2etest-ie7" protocol="rdp">
<param name="hostname" value="192.168.1.5" />
<param name="port" value="3389" />
<param name="enable-drive" value="true" />
<param name="drive-path" value="/home/guacdshare" />
</config>
<config name="f2etest-ie8" protocol="rdp">
<param name="hostname" value="192.168.1.6" />
<param name="port" value="3389" />
<param name="enable-drive" value="true" />
<param name="drive-path" value="/home/guacdshare" />
</config>
</configs>
service tomcat7 restart
6. 以上步骤我遇到了很多环境问题,列一部分问题及解决办法
-
本地编译安装guacamole server的时候,执行./configure
提示找不到libtelnet
,我用yum命令安装telnet后依然不行,最终去地址链接 下载rpm包本地安装成功,我下载的是这个版本。
-
顺便提一下centos中安装mysql的步骤
-下载
yum -y install mysql-server
-开机启动
chkconfig mysqld on
-启动服务
service mysqld start
-设置root账户密码
[root@simple ~]# mysql -u root
mysql> select user,host,password from mysql.user;
+——+———–+———-+
| user | host | password |
+——+———–+———-+
| root | localhost | |
| root | simple | |
| root | 127.0.0.1 | |
| | localhost | |
| | simple | |
+——+———–+———-+
5 rows in set (0.01 sec)
mysql> set password for root@localhost=password(‘设置个密码’);
mysql> exit
-
安装nodejs加入环境变量后,需要把nodejs配置到profile中,执行source /etc/profile立刻生效,如果重启以后就失效了,可以在~/.bashrc文件末尾加上:export PATH=$PATH:/usr/local/nodejs/bin:$PATH
- 安装nodejs 4.8版本提示g++太旧,请参考如下方法解决:
wget http:
yum install -y devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
scl enable devtoolset-2 bash
wget https:
tar -xvzf node-v4.2.1.tar.gz
cd node-v4.2.1
./configure
make && make install
- 如果安装libpng的时候,执行
make install
命令提示undefined reference to inflateReset2
的话,在config命令如此运行LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" ./configure
- 在本地编译guacamole-server的时候,执行
./configure --with-init-dir=/etc/init.d
要注意看看最后的结果,如果提示这样:
需要按照提示安装缺少的组件,可以在这里找。
- 安装过程中遇到这个错误:
..libguac/.libs/libguac.so: undefined reference to png_set_longjmp_fn
因为centos6.2在yum安装cairo的时候同时安装的依赖包里有libpng12库,默认是在usr系统目录下,而上面报错的方法最低版本要求是libpng14,,因此需要在执行configure命令的时候:./configure --with-init-dir=/etc/init.d --prefix=/usr/local/lib
7. 验证guacamole部署成功
- 访问地址:http://tomcatserver:8080/guacamole
- 你应该看到如下界面,否则部署没成功
8. 部署f2etest-web
- nodejs、npm请自行安装好
- npm用不了的请用cnpm代替(淘宝镜像)
- 安装过程请参考官网,完全没问题
-
这里给大家看一下我的配置文件(./conf下面的三个文件)
-
app.json
[
{
"id": "hostsshare",
"name": "hosts",
"server": "f2etest-ie11",
"program": "c:\\app\\hostsshare.bat"
},
{
"id": "ie6",
"name": "IE 6",
"server": "f2etest-ie6",
"program": "c:\\app\\ie6.bat"
},
{
"id": "ie7",
"name": "IE 7",
"server": "f2etest-ie7",
"program": "c:\\app\\ie7.bat"
}
]
-
server.json
[
{
"id": "f2etest-ie7",
"ip": "192.168.1.5",
"remoteApp": false },
{
"id": "f2etest-ie8",
"ip": "192.168.1.6",
"remoteApp": true }
]
-
site.json
{
"port": 3000,
"name": "F2eTest",
"about": "浏览器云测平台",
"icon": "/favicon.ico",
"dbHost": "mysql的IP地址",
"dbUser": "mysql的账户",
"dbPass": "mysql的密码",
"dbTable": "f2etest",
"clientApiKey":"随机的字符串",
"guacamoleApi": "http://f2etest-link.xxxx.com/guacamole/client.xhtml",
"footer": "",
"statNav" : "<a href=\"/stat\">标准统计</a> | <a href=\"/statuser\">个人统计</a>"
}
-
启动web服务器
node app.js
-
访问web服务器
http://tomcatserver:3000
-
问题1:访问的问题
访问IP:3000地址一直显示connetcing,然后nodejs控制台提示如下:
这是正常的,因为windows客户端还没配置,所以获取不到返回值。
如果显示黑屏,如https://github.com/alibaba/f2etest/issues/20 的问题所描述的,可以参考解决办法。
-
问题2:npm升级的问题
执行命令node app.js启动的时候遇到了问题,提示各种Error: Cannot find module 'finalhandler'
之类的错误,明明已经执行了npm install命令,却没有更新。执行以下命令检查:
which npm
which node
echo $NODE_PATH
因为按照作者的步骤,我们把nodejs的模块指定到非默认路径下,比如/usr/local/nodejs这样的,那么安装就会出问题,要手动设置:
export NODE_PATH=/usr/local/nodejs/lib/node_modules
如果出现各种missing,要用npm install安装到本地,我是一个一个装的,先执行npm list看看缺哪些,只要安装节点最上面的包,就可以一并安装依赖包了。npm玩的不熟,大家按自己的办法解决吧。
Windows Server2003/2008的设置
1. 安装操作系统
此处废话不多说,飞速略过。
- 安装好操作系统,记得安装网卡驱动
- 运行curl报错,提示没有找到msvcr100.dll:请安装vc2005及高版本
- VC(32位地址)
VC2005: http://www.microsoft.com/zh-cn/download/details.aspx?id=5638 必须安装
VC2008: http://www.microsoft.com/zh-cn/download/details.aspx?id=5582
VC2010: http://www.microsoft.com/zh-cn/download/details.aspx?id=8328
- VC(64位)
VC2005: http://www.microsoft.com/zh-cn/download/details.aspx?id=18471 必须安装
VC2008: http://www.microsoft.com/zh-cn/download/details.aspx?id=2092
VC2010: http://www.microsoft.com/zh-cn/download/details.aspx?id=13523
(windows server2008需要安装VC2010才行)
- 安装.net framework 2.0 X64位
https://www.microsoft.com/zh-cn/download/details.aspx?id=1639
2. 配置环境
其实2003配置流程和2008类似(有些设置找不到是因为位置或者名称不一样),这里照搬github上的过程,后面补充我遇到的问题。
运行 gpedit.msc
[计算机配置/管理模板/系统],右侧的 [显示“关闭事件跟踪程序”] 设为禁用
[计算机配置/Windows 设置/安全设置/账户策略/密码策略],禁用 [密码必须符合复杂性要求]、将 [密码最长使用期限] 设为 0
运行 gpupdate /force
[控制面板 / 电源选项 / 更改计划设置 / 关闭显示器] 设为 [从不]。
管理工具 / 服务器管理器 / 添加功能:
Telnet 客户端、桌面体验(主要是要 Windows Defender)
然后打开 控制面板 / Windows Defender,更新后自动设置成实时保护。 //此处我没配置
弊端:内存消耗增加。
管理工具 / 服务器管理器 / 添加角色:
远程桌面服务:
角色服务:远程桌面会话主机、远程桌面授权
身份验证方法:不需要使用网络级别身份认证
授权模式:每用户
用户组:添加 Authenticated Users
Web 服务器(IIS):
角色服务:勾选上 [应用程序开发/ASP]
安装完后重启并完成配置。
管理工具 / 服务器管理器
配置 IE ESC,禁用
激活远程桌面授权:
管理工具 / 远程桌面服务 / 远程桌面授权管理器,在打红叉的服务器上右键/激活服务器
公司信息:随便填
许可证安装向导:
许可证计划:企业协议
协议号码:6565792
产品版本:“Windows Server 2008或Windows Server 2008 R2”
许可证类型:“TS或RDS每用户CAL”
数量:输入你想允许的最大远程连接数量,如100
激活后,红叉变绿。
管理工具 / 远程桌面服务 / 远程桌面会话主机配置:
双击连接,“会话” 选择5分钟“结束已断开的会话”,“空闲会话限制”设为6小时;“客户端设置/限制最大颜色深度”为15位(提升性能,官方文档说24位)。
管理员不要5分钟断开吧 -- 没法单独设置,干脆设为2天、4天。
编辑设置/授权/授权服务器,添加许可证服务器为自己。
安装 curl:
http://curl.haxx.se/download.html#Win64,下载 Win64 x86_64 CAB
解压后,将 AMD64 文件夹下的文件复制到 C:\Windows 文件夹下。
或者将 f2etest-client/curl 下的 exe 和 dll 文件复制进去。
安装周边软件:Flash等
访问 https://get2.adobe.com/cn/flashplayer 安装flash
更改系统更新设置:
不允许自动安装更新。
在 Win 上部署 f2etest-client
将 app 文件夹复制到 c 盘根目录下(配置在前面的 app.json 中的),
将需要的 bat 配置到 [管理工具/远程桌面服务/Remote App] 中:
如果是2008操作系统,添加时请选择:允许任何命令行参数
部署 www 下的 setuser.asp
复制到 c:\interpub\wwwroot 下,并修改:
apiKey 为前面 conf/site.json 中配置的 clientApiKey。
[管理工具 / IIS 管理器],点开 [网站 / Default Web Site],点击 [身份验证],右键编辑,[特定用户] IUSR 修改为 Administrator 并输入密码。
否则 setuser.asp 无法正确执行(没有权限创建用户或修改密码)
如果遇到iis服务器访问asp提示403错误,说明iis服务器安装asp.net服务没有安装完全。
防火墙高级设置:
将 HTTP 服务的作用域限制仅有 192.168.0.23 可以访问。
设置 wwwroot 文件夹的权限,拒绝普通用户的所有权限。
f2etest-client的www目录必需要设置为仅管理员有权限,否则任何人都可以查看到setuser.asp中的apiKey,会有严重的安全风险。
没有一个合适的组包含普通用户、但不包含admin,因此在系统中新增一个组 F2eTest,并且修改 setuser.asp,将用户添加到组中:
Set oGroup=oSystem.GetObject("Group","F2eTest")
oGroup.Add ("winnt://"&username)
在 Win 上部署 hostsShare-client
将 hostsShare-client 下的 build 文件夹命名为 hostsShare,放到服务器 f2etest-ie11(app.json中配置的) 的 C 盘根目录下。
将 C:\app\hostsshare.bat 添加到 [管理工具/远程桌面服务/Remote App] 中,并允许任何命令行参数。
下载 IE 并安装(或者通过操作系统自动更新来安装)
http://windows.microsoft.com/zh-cn/internet-explorer/ie-9-worldwide-languages --> IE9-Windows7-x64-chs.exe
http://windows.microsoft.com/zh-cn/internet-explorer/ie-11-worldwide-languages --> IE11-Windows6.1-x64-zh-cn.exe
IE 10 的官网找不到,可以从其他地方下载 --> IE10-Windows6.1-x64-zh-cn.exe
注意去掉IE的 关于 菜单中的 “自动安装新版本”
3. 集中说一下安装和配置windows server遇到的问题
问题1:安装windows后,启动IIS服务器,没有ASP.NET选项卡
windows server默认的.net framework版本是1.1的,需要升级到2.0才能有。
-
问题2:访问IIS中的asp文件,提示404找不到文件
-
第一步,配置Web服务扩展
控制面板 -> 管理工具 ->服务和应用程序 ->Internet 信息服务(IIS)管理器 ->Web服务扩展 -> Active Server Pages -> 允许 -> Internet数据连接器 -> 允许。
运行.NET程序也一样要启用 ASP.NETV2.0
-
第二步,启用父路径支持和启用默认内容文档
启用父路径支持:
控制面板 -> 管理工具 ->服务和应用程序 ->Internet 信息服务(IIS)管理器 ->网站 ->默认网站 ->右键属性 ->主目录 ->配置 ->选项 ->打勾启用父路径。
启用默认内容文档:
控制面板 -> 管理工具 ->服务和应用程序 ->Internet 信息服务(IIS)管理器 ->网站 ->默认网站 ->右键属性 ->文档 ->打勾启用默认内容文档 ->添加 ->输入:index.asp ->确定 -> 添加 ->输入:index.aspx ->确定。
第三步,更改默认网站路径
控制面板 -> 管理工具 ->Internet 信息服务(IIS)管理器 ->网站 ->默认网站 ->右键属性 ->主目录 ->本地路径(本地路径改为自己设置的网站目录) ->确定。
问题3:如下图所示
确保client安装是ok的,然后asp.net升级到2.0,
http://IP:3000/syncAllRemoteUsers同步账户没有问题。正确配置后应该显示如下:
问题4:怎么确认f2etest-client安装成功了?
访问地址:http:/127.0.0.1/setuser.asp?username=test&password=hello123&key=xxx(请用site.json文件中设置的apikey替换xxx)
返回ok即可。
问题5:Windows server2003无法修改最大连接数,默认最多2人
1、开始->控制面板->添加或删除程序->添加/删除windows组件->选择“终端服务器”进行安装。
2、开始->运行->gpedit.msc,打开策略组编辑器,在树状菜单中选择计算机配置 ->管理模板 ->windows组件-》终端服务,在右侧窗口中打开“限制连接数量”,选择“已启用”,修改“TS允许的最大连接数”,确定。
问题6:如何设置www访问权限
用Administrator账户登录后,找到inetpub文件夹下的wwwroot目录,右键属性->安全,删掉users用户组,如下图:
对于上文描述的过程,给出配图(图比较多)