前言
前不久去参加腾讯2017WEB前端大会,看到腾讯微信支付团队郭润增分享的XPHP工具,不禁感叹,我们正需要这样一个工具。这个工具能够实现产品定义接口,后端填写参数,生成api文档给前端,前端根据接口实现界面,系统可以提供Mock服务便于前端进行调试,从而前后端可以分离开发。但是腾讯的这个工具暂时并未开源,于是我们决定自己开发一个这样的工具。
偶然的机会我得知阿里已经开源了这样一套工具,叫RAP,于是本着我们前端“有开源库绝不重复造轮子”的原则,我们决定直接采用阿里的RAP系统。
RAP
那么首先来了解一下阿里的RAP是什么,RAP能帮助我们解决什么问题。阿里文档是这样介绍他们的RAP工具的:“在RAP中,您可定义接口的URL、请求&响应细节格式等等。通过分析这些数据,RAP提供MOCK服务、测试服务等自动化工具。”,那么对于我们部门来说,前后端的分离目前还不够彻底,前后端接口交流基本靠会议和面对面交流。前端与后端的联调需要双方都开发完成才能进行,效率极其低下。单单是能够输出文档和能提供MOCK服务这两个功能,就足以说服我们采用这个工具。
搭建RAP运行环境
然后就是正式开始搭建RAP的环境,RAP需要的运行环境如下:
- JDK 1.8+
- MySQL 5.6.12+
- Tomcat 8.*+
- Redis 3.0+
RAP的部署方式有两种,一种是直接采用阿里编译好的war包,放入tomcat即可。另一种是获取源码后自己编译,然后打成war包再放入tomcat。
此处我采用的运行环境是CentOS 6.8,那么我就开始一步步完成RAP运行环境的搭建。
JDK1.8安装
Linux下安装Java有两种选择,一种是直接下载压缩包,然后解压进行安装,另一种是借助Linux平台上的RPM包管理器,采用yum install命令安装,此处我选择第一种方式。
-
下载安装包
访问http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,并找到需要的Java版本,获取下载链接,在Linux命令行借助wget命令完成压缩包的下载,此处我是将JDK安装到了/usr/local/java目录下。
wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz?AuthParam=1501405475_d198aebe7ed811ca17cab979e0664980
- 解压压缩包
tar zxvf jdk-8u144-linux-x64.tar.gz
- 配置环境变量
由于我是采用root用户执行的JDK安装,但是JDK的使用权限要给到每一个用户,所以此处我直接把环境变量配置到/etc/profile文件。
在/etc/profile文件末尾加入环境变量配置:
export JAVA_HOME=/usr/local/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存后执行source /etc/profile命令刷新环境变量。
此时采用命令java -version验证是否安装成功,如果成功打印出版本则证明JDK按照成功。
MySQL 5.6.12+安装
此处我选择的版本是5.6.17,安装方式与JDK一样,仍旧是压缩包与RPM两种,此处我仍旧采用压缩包方式。
-
下载安装包
访问http://mirrors.sohu.com/mysql/MySQL-5.6/,并找到需要的MySQL版本,获取下载链接,在Linux命令行借助wget命令完成压缩包的下载,此处我是将MySQL安装到了/usr/local/mysql目录下。
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
- 解压压缩包
tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
- 配置权限
-
添加系统mysql组和mysql用户
groupadd mysql
useradd -g mysql mysql -
给mysql用户配置环境变量
在mysql用户的Home目录下编辑.bash_profile文件,加入以下环境变量:
PATH=$PATH:$HOME/bin
PATH=$PATH:/usr/local/mysql/mysql-5.6.36/bin
export PATH
- 配置目录权限
修改MySQL安装目录拥有者为mysql用户
chown -R mysql:mysql /usr/local/mysql
- 拷贝配置模板到linux默认路径
cp /usr/local/mysql/mysql-5.6.36/support-files/my-default.cnf /etc/my.cnf
将其中的basedir和datadir配置为mysql的根目录及根目录下的data目录
basedir = /usr/local/mysql/mysql-5.6.36/
datadir = /usr/local/mysql/mysql-5.6.36/data/
- 初始化数据库
cd /usr/local/mysql/mysql-5.6.36/scripts
./mysql_install_db --user mysql --basedir /usr/local/mysql/mysql-5.6.36 --datadir /usr/local/mysql/mysql-5.6.36/data
- 开启数据库服务
mysqld
- 添加为Linux系统服务
cp /usr/local/mysql/mysql-5.6.36/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 700 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on
之后就可以使用service mysqld start和service mysqld stop来启动和停止mysql服务。
Tomcat8 安装
-
下载安装包
访问http://tomcat.apache.org/download-80.cgi,并找到需要的Tomcat版本,获取下载链接,在Linux命令行借助wget命令完成压缩包的下载,此处我是将Tomcat安装到了/usr/local/tomcat目录下。
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.16/bin/apache-tomcat-8.5.16.tar.gz
- 解压压缩包
tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
Redis3.2 安装
-
下载安装包
访问https://redis.io/download,并找到需要的Tomcat版本,获取下载链接,在Linux命令行借助wget命令完成压缩包的下载,此处我是将Redis安装到了/usr/local/redis目录下。
wget http://download.redis.io/releases/redis-3.2.10.tar.gz
- 解压压缩包
tar zxvf redis-3.2.10.tar.gz
- 执行make
解压完毕后,进入redis目录,执行make。
cd redis-4.0.1
make
- 运行redis
使用nohup ./src/redis-server & 来启动Redis Server
RAP的war包部署
下载RAP的war包
打开RAP的github下载页,复制最新版本war包的下载地址,进入到tomcat的webapps目录,采用wget命令下载war包。
wget http://rapapi.org/release/RAP-0.14.16-SNAPSHOT.war
首先删掉原来的ROOT目录,然后将下载的war包改名为ROOT.war。
rm -rf ROOT
mv RAP-0.14.16-SNAPSHOT.war ROOT.war
此时先启动Tomcat,待war包解压后,停掉tomcat。
/usr/local/tomcat/tomcat-8.5.16/bin/startup.sh
/usr/local/tomcat/tomcat-8.5.16/bin/shutdown.sh
修改配置,执行SQL脚本
修改src/config.properties中的数据库连接地址、用户名和密码。
执行SQL脚本: /src/main/resources/database/initialize.sql
此处我将这个脚本文件放到了mysql 用户的home目录,并且赋予了777权限。
使用root用户:
cp /usr/local/tomcat/tomcat_rap/webapps/ROOT/WEB-INF/classes/database/initialize.sql /home/mysql/init.sql
chmod 777 /home/mysql/init.sql
然后使用mysql用户:
mysql -u root
source /home/mysql/init.sql
参考资料
https://github.com/thx/RAP/wiki/deploy_manual_cn
http://docs.oracle.com/javase/8/docs/technotes/guides/install/linux_jdk.html
http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html
http://www.cnblogs.com/h--d/p/5597959.html
网友评论