环境准备:
CentOS 7.2
git 1.8.3.1
node 9.3.0
npm 5.5.1
mysql 5.7.29
redis 5.0.0 使用单机模式,并关闭集群配置
使用root权限进行安装
一、安装nodejs
1、下载nodejs最新包
wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz
2、解压nodejs包
tar -xvf node-v9.3.0-linux-x64.tar.xz
3、部署bin文件
先确认nodejs的路径,然后执行: (ln -s 用于创建关联)
ln -s /home/XXX/node-v9.3.0-linux-x64/bin/node /usr/bin/node
ln -s /home/XXX/node-v9.3.0-linux-x64/bin/node /usr/bin/npm
4、测试,正确输出版本号,则部署完成。
node -v
npm -v
5、mysq 、redis安装部署不再赘述,可自行百度安装。
二、安装服务端delos
1、下载服务端包
git clone https://github.com/thx/rap2-delos.git
2、修改配置文件
配置文件路径: rap2-delos/src/config
配置文件:config.dev.ts ; config.prod.ts ; config.local.ts //主要修改前面两个配置文件,dev对应开发环境,prod对应生产环境,修改配置中对应的db信息(username,password)参数,与本地开发环境数据库信息相对应。
config.dev.ts修改配置如下:
import { IConfigOptions } from '../types'
const config: IConfigOptions = {
version: 'v2.9.0',
serve: {
port: (process.env.SERVE_PORT && parseInt(process.env.SERVE_PORT)) || 8080,
path: '',
},
keys: ['some secret hurr'],
session: {
key: 'rap2:sess',
},
db: { //主要修改该选项下对应的数据库信息
dialect: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: '123456',
database: process.env.MYSQL_SCHEMA ?? 'RAP2_DELOS_APP',
pool: {
max: 10,
min: 0,
idle: 10000,
},
logging: false,
dialectOptions: {
connectTimeout: 20000,
},
},
redis: {
host: 'localhost',
port: 6379,
},
mail: {
host: process.env.MAIL_HOST ?? 'smtp.aliyun.com',
port: process.env.MAIL_PORT ?? 465,
secure: process.env.MAIL_SECURE ?? true,
auth: {
user: process.env.MAIL_USER ?? 'rap2org@service.alibaba.com',
pass: process.env.MAIL_PASS ?? '',
},
},
mailSender: process.env.MAIL_SENDER ?? 'rap2org@service.alibaba.com',
}
export default config
3、创建数据库,我用的是rap_delos_app库
CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
4、安装相关依赖包
以下步骤进入rap2-delos主目录下执行:
npm install //安装所需依赖
npm install -g pm2 //安装pm2 ,用来启动服务端代码的
npm install typescript -g //安装TypeScript编译包
5、初始化数据库
npm run build //执行编译
如果编译报错: rimraf: command not found 则执行 npm install rimraf --save-dev -g
npm run create-db //初始化数据库
如果初始化数据库保错:Unable to connect to the database:{ SequelizeAccessDeniedError: Access denied for user ‘root’@‘localhost’ (using password:NO) ,则检查rap2-delos/src/config/config.dev.ts 文件数据库的配置是否正确,如果检查确认无误,那么查看rap2-delos目录下是否存在dist目录,修改dist/config/config.dev.js 文件下对应的数据库相关信息后,重新初始话数据库。
npm run check //代码规范检查
6、启动项目
npm run dev & //开发模式,启动开发模式的服务器
或使用
pm2 start npm – run dev
npm start //生产模式,启动生产模式的服务器
7、检查是否启动成功
pm2 log //出现如下信息
DATABASE √
HOST localhost
PORT 3306
DATABASE RAP2_DELOS_APP
访问IP:port出现如下信息说明启动成功。
RAP2后端服务已启动,请从前端服务(rap2-dolores)访问。
三、客户端dolores部署
1、下载安装包
git clone https://github.com/thx/rap2-dolores.git
2、修改配置
配置文件路径: rap2-dolores/src/config
文件:config.dev.ts , config.prod.ts //dev表示开发环境,文件中的serve地址是服务端rap2-delos部署成功后的地址,默认:‘http://localhost:8080’
修改配置如下(注意ip必须是服务器真实ip、页面访问后端服务的地址端口、外网访问即用公网IP端口):
const config: IConfig = {
serve: 'http://ip:port', //ip为浏览器访问后端服务输入的ip
keys: ['some secret hurr'],
session: {
key: 'koa:sess',
},
}
export default config
3、安装项目依赖包
npm install
4、编译启动项目
npm run dev //开发模式,自动监视改变后重新编译
npm run test //测试用例
npm run build //生产模式,编译React生产包
5、配置服务器(可使用nginx代理,也可使用server启动)
a、server启动
npm install -g server //安装server
serve -s ./build -p 8090 //启动,其中./build是编译生成的文件路径,8090是前端访问的端口
nohup serve -s /home/XXX/rap2-dolores/build -p 8090 & //nohup后台启动,并指定绝对路径
b、nginx代理,nginx.conf配置如下:
server {
listen 8090; //前端访问地址
server_name _;
root /home/XXX/rap2-dolores/build;
index index.html index.htm;
location / {
try_files $uri /index.html;
}
error_page 500 502 503 504 /500.html;
}
6、访问测试
浏览器输入http://ip:8090 输出如下图片则部署成功。