RAP2环境搭建整理(超详细)
RAP2是阿里开源的接口管理平台,最近搭建了一下,将部署文档整理如下:
如果途中遇坑会在文章末尾记录下来嘻嘻
首先,确定环境是否部署好。
RAP2所需的环境为:
node.js 8.9.4+
mysql 5.7+
redis 4.0+
centos 6.5(后来搭建的时候升至最新了)
确定以上服务是否部署好如下:
centos 6.6
cat /etc/issue
node.js
[root@product-C local]# node -v
v8.11.4
mysql 5.7
[root@product-C local]# service mysqld status
mysqld (pid 12488) is running...
[root@product-C local]# chkconfig --list
redis 4.0
[root@localhost bin]# whereis redis-cli
redis-cli: /usr/local/bin/redis-cli
[root@localhost bin]# whereis redis-server
redis-server: /usr/local/bin/redis-server
确认完毕后,就可以开始部署RAP2了
由于 客户端:rap2-dolores 是建立在 服务端:rap2-delos 基础上,因此先搭建服务端应用
服务端delos环境搭建
构建项目
git clone https://github.com/thx/rap2-delos.git
环境配置
修改配置
git clone 下载之后,修改这几个文件的配置config.dev.ts、config.local.ts、config.prod.ts,位置在rap2-delos/src/config。三个文件都照如下修改好:
import { IConfigOptions } from "../types";
let config: IConfigOptions = {
version: '2.3',
serve: {
port: 8888 //你自己设置的端口,我是设置的8888
}, keys: ['some secret hurr'],
session: {
key: 'rap2:sess'
},
db: {
dialect: 'mysql',
host: 'localhost', //mysql服务器的ip,这里我是用的本地的mysql
port: 3306,
username: 'root', //mysql用户名
password: 'root', //mysql密码
database: 'RAP2_DELOS_APP', //rap2的后台数据库名
pool: {
max: 5,
min: 0,
idle: 10000
},
logging: false
},
redis:{
host: 'localhost',
port: 6379
}
}
export default config
创建数据库
修改完成之后,在上述配置的数据库上建立rap2的数据库:RAP2_DELOS_APP。
DROP DATABASE RAP2_DELOS_APP;
CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
启动项目
安装项目依赖包
项目根目录下执行
# 安装项目所需依赖
npm install
# 全局安装PM2
npm install -g pm2
可能会出现什么gcc版本过低等问题,可百度去升级。
安装TypeScript编译包
npm install typescript -g
如果下载缓慢,请使用淘宝npm镜像
编译
npm run build,修改了项目的代码之后一定重新编译,不然修改不起作用。
一定要先编译,如果先初始化数据库,会提示dist目录不存在
初始化数据库
项目根目录下执行(该过程比较慢,耐心等待初始化完成)
npm run create-db
编译启动项目
执行mocha测试用例和js代码规范检查,可以检查项目的配置,代码的正确性。
npm run check
运行
开发模式
启动开发模式的服务器 监视并在发生代码变更时自动重启(第一次运行比较慢,请耐心等待)
npm run dev
正常结果截图:
生产模式
启动生产模式服务器
npm start
看到浏览器中如下提示,表示服务端delos已经部署成功
浏览器访问效果截图:
客户端dolores环境搭建
构建项目
获取源代码
git clone https://github.com/thx/rap2-dolores.git
环境配置
配置文件
目录:rap2-dolores/src/config
文件:config.dev.ts;其中dev,表示开发环境,其他同理
修改:config.dev.ts文件,serve地址是 服务端 rap2-delos 部署成功后的地址,默 认:'http://localhost:8080',修改成后端服务器的ip(rap2.msq.com)+之前配置的端口(8888);
启动项目
安装项目依赖包
项目根目录下执行
npm install
如果下载缓慢,请使用淘宝npm镜像
编译启动项目
开发模式
自动监视改变后重新编译
npm run dev
备注:测试用例
npm run test
生产模式
编译React生产包
npm run build
用serve命令或nginx服务器路由到编译产出的build文件夹作为静态服务器即可
serve -s ./build -p 80
正常启动截图:
用nginx指向localhost:8082
浏览器访问截图:
ps:配置nginx后要修改host:服务器Ip rap2.msq.com。(暂不做)
遇到的问题
在进入MySQL的时候,发现会报以下错误:
find / -name mysql.sock
ln –s /data/mysqld/mysql.sock /var/lib/mysql/
做一个软连接即可解决
在安装项目依赖包的时候,发现npm命令无效
也是做一个软连接即可解决
ln -s /data/nodejs/bin/npm /usr/local/bin/
安装依赖的时候出现了npm WARN saveError ENOENT: no such file or directory
后来发现没有在项目根目录执行
在安装依赖npm install的过程中出了下面的错误信息,也不算安装错误吧,应该说是因为权限问题安装的不完整。
解决方案
1.先判断环境问题,用node -v, npm -v查看版本号,判断是否安装了node环境。
2.尝试使用下面命令越过权限安装
sudo npm install
3.如果第二步骤安装成功就可以了,如果出现下面的错误
sudo: npm:找不到命令
办法是输入下面的命令
[root@localhost rap2-delos]# sudo ln -s /usr/local/bin/node /usr/bin/node
[root@localhost rap2-delos]# sudo ln -s /usr/local/lib/node /usr/lib/node
[root@localhost rap2-delos]# sudo ln -s /usr/local/bin/npm /usr/bin/npm
[root@localhost rap2-delos]# sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
觉得npm慢可以走一下淘宝提供的捷径 npm install -g cnpm --registry=https://registry.npm.taobao.org
好了,接下来安装
[root@localhost rap2-delos]# npm install
搞定。
安装后,因为之前安装失败,有创建node_modules目录
用命令删除即可
rm -f /node_modules
之后,又出现了这个警告,百度得知,原因是因为: fsevent是mac osx系统的,在win或Linux下使用了所以会有警告,忽略即可。意思就是你已经安装成功了。
全局安装PM2的时候,会报一下警告,是因为没有用管理员权限运行
发现安装PM2成功之后,仍是无法找到命令,以下有一个通用方法解决:
解决方法:
用一个通用的命令配置环境变量
echo -e "export PATH=$(npm prefix -g)/bin:$PATH" >> ~/.bashrc && source ~/.bashrc
上面的命令中使用 npm prefix -g 获取node安装目录
再执行命令 ~$ serve -v
成功
安装其他命令 也能成功执行
npm run dev error [npm ERR! code ELIFECYCLE]后来没有解决
但是可以用以下简单粗暴的方法试一试: node_modules安装问题,执行以下:
rm -rf node_modules
rm package-lock.json
npm cache clear --force
npm install
安装成功后,发现除了首页,在其他页面刷新都会出现404的问题
原因:
使用nginx解决,方法如下:
首先安装nginx,可以源码自己编译安装也可以直接yum安装。这里为了方便快速,直接用yum安装
但是发现直接安装会有以下错误:
后来百度一下,说缺少EPEL(epel是社区强烈打造的免费开源发行软件包版本库,系统包含大概有1万多个软件包)
版本寻找地址:http://fedoraproject.org/wiki/EPEL
我需要的是适用于6.x,我直接找到源后wget下载到当前目录:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
然后进行安装:
rpm -ivh epel-release-6-8.noarch.rpm
最后进行安装yum install nginx 解决问题。
在运行npm run test的时候,会报以下错误:
经过多方百度,后来问了大佬,得到了解决,超开心的
方法: 将console.log代替alert
完美解决
参考:
https://blog.csdn.net/msqplt/article/details/81450300 https://incoder.org/2018/03/27/rap2/ https://blog.csdn.net/yyzzhc999/article/details/79992505 http://www.1314yq.com/server/263.html https://blog.csdn.net/weixin_39690767/article/details/80025538 https://blog.csdn.net/weixin_37281289/article/details/79871923 https://blog.csdn.net/weixin_41004350/article/details/81737354
RAP2环境搭建整理(超详细)的更多相关文章
- pycharm+gitee环境搭建(超详细)
背景:本地开发代码在没有云托管的时候代码很容易丢掉,如果是小团队,这时候可以使用公司团队注册一个账号共同使用.如果是个人用于代码存储或者用于以后项目经验也推荐gitee.大的团队可以购买 环境:win ...
- iOS自动化环境搭建(超详细)
1.macOS相关库安装 libimobiledevice > brew install libimobiledevice 使用本机与苹果iOS设备的服务进行通信的库. ideviceinsta ...
- 区块链之Hyperledger(超级账本)Fabric v1.0 的环境搭建(超详细教程)
https://blog.csdn.net/so5418418/article/details/78355868
- Api 文档管理系统 RAP2 环境搭建
Api 文档管理系统 RAP2 环境搭建 发表于 2018-03-27 | 分类于 Api | 评论数: 4| 阅读次数: 4704 本文字数: 4.8k | 阅读时长 ≍ 9 分钟 RA ...
- Qt+QGIS二次开发:开发环境搭建(超级详细)
原文链接: 1.qgis二次开发环境搭建(超级详细) 2.QGIS开发教程(1)——QGIS开发准备工作 3.QGIS(2.18.15 源码)+Qt(5/5.9.3)+VS2015(X64)编译
- 【神经网络与深度学习】Win10+VS2015 caffe环境搭建(极其详细)
caffe是好用,可是配置其环境实在是太痛苦了,依赖的库很多不说,在VS上编译还各种报错,你能想象那种被一百多个红色提示所笼罩的恐惧. 且网上很多教程是VS2013环境下编译的,问人很多也说让我把1 ...
- Linux下Hadoop2.7.1集群环境的搭建(超详细版)
本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 一.基础环境 ...
- android学习1:清晰详细android环境搭建,超简单
废话少说,今天是Android学习的开篇的博客,接下来将把自己学习android的各种问题和经历总结一下,其实之前已经自己学过半年了,但是因为开始时刚学的移动端开发还没有概念,当时总结工作又做的不好, ...
- 一文教你如何在ubuntu上快速搭建STM32 CubeIDE环境(图文超详细+文末有附件)
在快速ubuntu上安装cubeide你值得拥有:适合对linux系统还不是很熟悉的同学: 文章目录 1 下载 cubeide 2 找到软件 3 安装 4 附件 5 总结 1 下载 cubeide 登 ...
随机推荐
- Linux.开关机&登出&用户管理
关机重启: shutdown: shutdown –h now 立该进行关机 shudown -h 1 "hello, 1 分钟后会关机了" ...
- Selenium图片上传
方式1: 如果是input类型的标签则可直接赋值 部分代码: driver.find_element_by_name("file").send_keys("E:\\tes ...
- generator 函数
可以看做一个状态机, 生成的是一个迭代器对象, 可以用来遍历状态机里面的各种状态 创建方式 在函数名前面添加 * , 内部使用 yeild 来标注状态 特性 yield 只能在 generator 中 ...
- SpringMVC使用校验validator校验对象属性
1.pom.xm添加依赖 <dependency> <groupId>javax.validation</groupId> <artifactId>va ...
- java之sleep(),join(),yield(),wait(),notify()、notifyAll()区别
1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方 ...
- python单元测试unittest框架
环境:PyCharm 2016.2 + python 3.5 待测试的类:(Widget.py) 测试类:(Auto.py) 测试结果: 总结:1.第一步:先写好测试类2.第二步:导入unittest ...
- 浮动产生的高度坍塌解决方法以及使用siblings()方法获取同级元素
高度坍塌:如果一个没有设置高度div里的元素都是浮动元素,这个时候就可能产生高度坍塌,因为div的高度都是普通元素撑起来的,div里的元素浮动之后,元素就会脱离文档流,所以父级的div高度就可能为零, ...
- Selenium基本用法以及元素定位
一.Selenium 简介 Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,提供一套测试函数,用于支持Web自动化测试.函数非常灵活,能够完成界面元素定位.窗口跳 ...
- iOS:URL Scheme(完结)(18-1-3更)
1.APP跳转 2.APP功能跳转 3.系统功能跳转 1.APP跳转 1.被打开方 设置APP的URL Types(设置位置在 “项目 - TARGETS - APP icon - info - (拉 ...
- ObjC之RunTime(上)
转载自这里. 最近看了一本书——iOS6 programming Pushing the Limits(亚马逊有中文版),最后一章是关于Deep ObjC的,主要内容是ObjC的runtime.虽然之 ...