最近有时间浏览网站看 stf 是开源的,自己也想试着搭建一下。历经各种曲折,记录下这一个过程作为备忘,也给其他初次使用 stf 的新手们提供一个参考。
手边只有一个 win7 机器,只好自己从建虚拟机开始。这里推荐使用 centos7,centos7 上自带安装了 java,而且有些东西不需要自己再安装。
分别参考了站内和站外两个,很感谢他们在这个过程中为我解答的问题,推荐一下。
①超级链接
②超级链接
1.安装 vaware 的最新版本 vmware 14pro
2.下载 centos7 的镜像,使用镜像安装 centos7 虚拟机,开始使用的是 NAT 模式,实现了宿主机和虚拟机可以相互通信,但搭建好后别人访问不了,在其他同学帮助下才知道需要使用桥接方式其他机器才能访问。
1.在本地创建源码路径
2.使用 git clone 命令将源码下载到本地,源码下载过程可能很慢,我直接下载的 zip 包。
1.源码目录下修改 stf 文件的权限,添加文件可执行权限:chmod -R +x bin,也可以使用 chmod -R +x stf 命令只对 stf 文件添加可执行权限。
2.执行./stf doctor,检测环境是否完整,如果不完整按照错误提示修改。
3.在源码路径下执行 cnpm install,会在源码路径下生成 node_modules 目录,并安装 package.json 中的依赖包。中间安装 bower 可能会有错误提示,因为这个安装需要 root 权限,可单独安装,单独安装则执行 bower install --allow-root。在其他同学帮助下,在 package.json 中修改 bower 的安装权限不会报错,也是添加 --allow-root。
3.启动 rethinkdb
4.连接手机的主机 adb 服务打开,我用的 1.0.40,使用到的命令是 adb nodaemon server -a,默认使用到是 5037 端口,也可以使用-P 指定为其他端口,这边如果修改端口的话,启动 stf 服务的命令端口也要修改。
5.启动 stf 服务:./stf local --public-ip xxx.xxx.xxx.xxx --port 7100 --adb-host xxx.xxx.xxx.xxx --adb-port 5037 --allow-remote &
6.本地访问 stf 服务
7.远程访问 stf 服务
local,允许本地使用 127.0.0.1:7100 访问 stf 服务;--public-ip xxx.xxx.xxx.xxx,部署 stf 服务的主机 ip;--port 7100:stf 服务的端口号;--adb-host xxx.xxx.xxx.xxx,连接着手机的主机 ip; --adb-port 5037,连接手机的主机上 adb 服务的端口; --allow-remote:允许远程访问 stf 服务;&:linux 后台执行服务。
在启动服务过程中 stf 会打印很多的日志,比如连接数据库,数据库各种设置,triproxy,processor,reaper,provider,auth-mock,app,api,storage-temp,websocket 和手机的交互等,这些日志在以后读源码以及修改源码的过程中都很有帮助。
stf 的开发者在 README.md,doc\DEPLOYMENT.md 和 doc\API.md 中提供了很多使用过程中可能遇到的问题以及部署建议,还有安全性问题,对在使用过程中遇到的问题很有帮助。
另外作者还提供了 docker 安装方式,这需要安装 docker 工具 pull 下所有依赖,安装过程简单很多。修改源码使用 docker 容器,需要注意 docker 拉下的代码应该是修改后的。stf 是使用 nodejs 开发的,如果有些 nodejs 基础入门上手更快些,因为我开始不懂 nodejs,反反复复弄了好几天才明白些。