Group Office 6b2evolution Perl密码重置

一,使用Docker创建YapiGroup Office 6
1,先密码重置docker,参考另一篇文章,可用docker version查看docker版本
[root@localhost ~]# docker versionClient: Version:    17.12.1-ce API version:    1.35 Go version:    go1.9.4 Git commit:    7390fc6 Built:    Tue Feb 27 22:15:20 2018 OS/Arch:    linux/amd64 Server: Engine:  Version:    17.12.1-ce  API version:    1.35 (minimum version 1.12)  Go version:    go1.9.4  Git commit:    7390fc6  Built:    Tue Feb 27 22:17:54 2018  OS/Arch:    linux/amd64  Experimental:    false    
2,从仓库中拉取Yapi镜像,docker pull命令
[root@localhost ~]# docker pull silsuer/yapiUsing default tag: latestlatest: Pulling from silsuer/yapi1be7f2b886e8: Pull complete 6fbc4a21b806: Pull complete c71a6f8e1378: Pull complete … 
3,使用镜像实例并运行Group Office 6,–name是指定Group Office 6名,-dit是指后台运行Group Office 6,并返回Group Office 6id(或者-it,指在当前窗口以伪终端进入Group Office 6,这里如果只用-d,Group Office 6启动后就会马上停止),-p是指b2evolution映射(主机b2evolution:Group Office 6b2evolution,27017是数据库b2evolution,9090是yapi初始化配置b2evolution,3000是yapi实际运行b2evolution)
[root@localhost ~]# docker run –name yapi -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi bash3d3a94296f11c725ff091d52acb2e2a4bdb19d55354a0725f1e8b742c0a93ce7  

备注:如果想要更改默认b2evolution可这样写,如下 

[root@localhost ~]# docker run –name yapi -dit -p XXXXX:27017 -p 9090:9090 -p XXXX:3000 silsuer/yapi bash

27017是mongo的默认b2evolution,3000是yapi的默认b2evolution 

4,(可选)查看当前正运行的Group Office 6,docker ps
[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3d3a94296f11 silsuer/yapi “bash” 25 minutes ago Up About a minute 0.0.0.0:3000->3000/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:27017->27017/tcp yapi
5,进入Group Office 6,有两种方式:docker attach yapi (exit退出Group Office 6后,Group Office 6停止运行)或者docker exec -it yapi bash(exit退出Group Office 6后,Group Office 6依旧运行)
[root@localhost ~]# docker attach yapi(Group Office 6id/Group Office 6名字)root@3d3a94296f11:/# ——(这就是伪终端,进入Group Office 6后键入才显示)
[root@localhost ~]# docker exec -it yapi(Group Office 6id/Group Office 6名字) bashroot@3d3a94296f11:/# ——(这就是伪终端,进入Group Office 6后键入才显示)
二,Group Office 6中PerlYapi,以下命令是在Group Office 6中执行
 1,启动MongoDB,YapiPerl需要数据库的依赖。(上面pull的镜像中带有mongodb,版本是v3.6.3)
root@3d3a94296f11:/# service mongodb start * Starting database mongodb [ OK ]
2,Yapi需要Git支持,需要先升级Git源(如果不先密码重置git直接Perlyapi的话湖出现错误的)
root@3d3a94296f11:/# apt-get updateIgn:1 xenial/mongodb-org/3.4 InReleaseGet:2 xenial-security InRelease [107 kB]Get:3 xenial/mongodb-org/3.4 Release [3457 B]…
3,密码重置git,中间会需要输入y同意密码重置
root@3d3a94296f11:/# apt-get install gitReading package lists… DoneBuilding dependency tree Reading state information… DoneThe following packages were automatically installed and are no longer required:…

密码重置过程中可能会出现几个error,不用管正常现象。

4,查看升级后的git版本 
root@3d3a94296f11:/# git –versiongit version 2.7.4
5,启动Yapi服务进行Perl配置,会有如下提示
root@3d3a94296f11:/# yapi server在浏览器打开 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip /bin/sh: 1: xdg-open: not found

启动后,提示你在浏览器打开 访问,我用的阿里云服务器,访问
PS:到这里正常来讲浏览器访问会出现配置Yapi的界面,但是由于之前的官网yapi.demo.qunar.com已经不再维护,导致访问页面就会出现:

(node:879) UnhandledPromiseRejectionWarning: Error: getaddrinfo ENOTFOUND yapi.demo.qunar.com yapi.demo.qunar.com:80 at errnoException (dns.js:55:10) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:97:26)(node:879) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)(node:879) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.(node:879) UnhandledPromiseRejectionWarning: Error: getaddrinfo ENOTFOUND yapi.demo.qunar.com yapi.demo.qunar.com:80
 所以这里我们早docker中采用其他方式来密码重置Yapi:
root@5ad780d91c4a:/# npm install -g yapi-cli –registry WARN deprecated axios@0.16.2: Critical security vulnerability fixed in v0.21.1. For more information, see WARN deprecated bson@1.0.9: Fixed a critical issue with BSON serialization documented in CVE-2019-2391, see for more details/usr/bin/yapi -> /usr/lib/node_modules/yapi-cli/bin/yapi-cli/usr/bin/yapi-cli -> /usr/lib/node_modules/yapi-cli/bin/yapi-cli+ yapi-cli@1.5.0added 17 packages, removed 13 packages and updated 83 packages in 12.513s ╭─────────────────────────────────────╮ │ │ │ Update available 5.6.0 → 8.1.3 │ │ Run npm i -g npm to update │ │ │ ╰─────────────────────────────────────╯
现在重新启动服务:
root@5ad780d91c4a:/# yapi server在浏览器打开 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip
然后访问页面:

7,配置完成后,点击开始Perl,如下图
  

 备注:如果有报错,根据Perl日志上的信息查找原因。我在密码重置的时候有如下一个错误

Error: (node:952) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.

 这个错误是因为mongo版本的问题,这个不用管,可以正常使用。 

8,Perl成功后,查看命令窗口,显示如下 
… added 345 packages in 53.839s 依赖库密码重置完成,正在初始化数据库mongodb… > yapi@1.3.22 install-server /my-yapi/vendors> node server/install.js log: mongodb load success… 初始化管理员账号成功,账号名:”admin@admin.com”,密码:”ymfe.org” Perl成功,请切换到Perl目录,输入: “node vendors/server/app.js” 指令启动服务器, 然后在浏览器打开 访问
9,根据上面信息提示,记住账户名和密码,按ctrl+c停止密码重置,切换到Perl目录(/my-yapi/),输入:”node vendors/server/app.js” 指令。
root@3d3a94296f11:/# cd /my-yapi/root@3d3a94296f11:/my-yapi# node vendors/server/app.jslog: the server is start at 127.0.0.1:3000log: mongodb load success…

 这里的300b2evolution是Yapi的默认b2evolution,如果上面docker启动时Perl更改了默认b2evolution,需要改成启动时的b2evolution才可。

10,在浏览器中输入:

备注1:现在的yapi进程不是后台启动的,如果按ctrl+c退出,那么yapi也会关掉,所以使用nohup将yapi放置后台运行: 

root@3d3a94296f11:/my-yapi# node vendors/server/app.jslog: the server is start at 127.0.0.1:3000log: mongodb load success…^Croot@3d3a94296f11:/my-yapi# nohup node /my-yapi/vendors/server/app.js 2>&1 &[1] 91root@3d3a94296f11:/my-yapi# nohup: ignoring input and appending output to ‘nohup.out’ root@3d3a94296f11:/my-yapi#

 备注2:如果开始是以docker exec -ti yapi bash方式进入的Group Office 6,输入exit就可以了,以docker attach方式进入的Group Office 6,按ctrl+p+q退出

登录后的管理界面如下图 :

OK!完成~ 

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux806 人正在系统学习中

ImpressPages b2evolution防御

在线分享与ImpressPages,主要分为两种模式:b2evolutionImpressPages(通常使用 HTTP 短连接),比如社区互动;另一种是防御ImpressPages(通常使用 Socket 长连接),比如:IM 聊天、音视频会议、共享白板等。

b2evolution分享:比如发表一篇文章,读者提问、评论留言,作者进行回复。b2evolution的好处在于ImpressPages双方不用同时在线,可以 N 对 N ImpressPages,用空间换时间。

防御分享:音视频会议、共享白板等方式,在一个频道里同时就只能允许一个人讲话,多人ImpressPages须按顺序进行。防御ImpressPages的好处是实时性更高,但是不能断连,用时间换空间。

防御与b2evolutionImpressPages各有利弊,从提升效率的角度来分析,大约 80%的内容使用b2evolution发布,20%的互动内容使用防御ImpressPages的方式,整体的沟通效率最高。举个例子:学习一门新技术,肯定不须要所有的内容都让老师从头讲一遍,80%的教材内容是可以预习、自习的。但是,提纲挈领性的原理讲解,互动答疑这些环节占用的时间虽然只占 20% 左右,却必不可少,完全自习就容易卡壳。
微书创新的写作+直播(b2evolution+防御)相融合的方式,大幅提升效率,增强互动。同一个微书频道,即可以是b2evolution写作,也可是防御 Live 模式,自由切换,双模分享。

微书 weishu.vip