钉钉开发指南-测试服务器部署篇

centos7 安装部署

  • 使用工具: win => xshell/sftp; mac => 终端.
  • 操作系统: centos7
  • 常用命令: wget | tar | ln
  • 主要命令: forever | systemctl
    如对上述工具及命令比较熟悉最好不过, 不熟悉的同学那就依葫芦画瓢,部署演练一番, 如有问题请及时群内沟通大家协助解决.

准备服务器

本文讲解的是一个测试服务器的部署

阿里云选购最低配置服务器一台: 点击跳转链接

已有lunux服务器同学请跳过,并联系管理员获得账密

选择系列III,紧凑型xn4,1核/1G/1MB, CentOS 7.3 64位即可,这是最便宜的了.

设置root账号密码, 并记录备用.

按提示操作, 登录阿里云,找到实例, 记录公网IP地址备用.

登录服务器

防火墙启用和配置

可复制多行命令,贴到终端执行,末行回车即可

1
2
3
4
5
6
7
8
9
10
11
sudo systemctl enable firewalld
sudo systemctl start firewalld
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=30001/tcp --permanent
sudo firewall-cmd --zone=public --add-port=30002/tcp --permanent
sudo firewall-cmd --zone=public --add-port=30003/tcp --permanent
sudo firewall-cmd --zone=public --add-port=30004/tcp --permanent
sudo firewall-cmd --zone=public --add-port=30005/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
  • 80: Web服务端口 => Nginx 测试应用站点
  • 30001: authServer( 钉钉jsapi鉴权服务 ) => Node + koa2
  • 30002: apiServer ( 真实Api服务 ) => Node + koa2 + sequelize
  • 30003: jsonServer( 模拟Api服务 ) => Node + jsonServer + mockjs
  • 30004: 备用
  • 30005: mysql ( 数据库 )

新增用户和权限设置

  1. 新增用户 ( 替换digyou为你账号名称 )

    1
    useradd dingyou && passwd dingyou => Ding2017
  2. 授权sudo

    1
    visudo
  • i : 切换到插入编辑模式
  • 查找 “root ALL=(ALL) ALL”的位置, 其下新增一行 “ dingyou ALL=(ALL) NOPASSWD:ALL “, NOPASSWD:ALL 免密码使用sudo比较方便
  • 查找 “Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin” 末尾增加 “:/usr/local/bin” , 否则sudo找不到node命令
  • wq : 保存退出, 其他命令参看常用命令集

换用 dingyou 账号登录

1
su dingyou

我之前总是习惯用root账号操作, 但是玩玩可以, 正式和大家协作,为了安全性,还是不要用root账号操作为好.

###: 设置系统环境变量

1
2
sudo vi /etc/environment => NODE_ENV="develop" // 末行增加
source /etc/environment


mysql 5.7安装部署

此文档仅针对开发环境的搭建做出讲解,没有安全/性能/可用性等方面的考虑,不适用于配置生产系统

安装mysql

1
2
3
4
5
6
7
8
9
cd ~
sudo wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
sudo yum -y localinstall mysql57-community-release-el7-9.noarch.rpm
sudo yum -y repolist enabled | grep "mysql.*-community.*"
sudo yum -y install mysql-community-server
sudo systemctl enable mysqld
sudo systemctl start mysqld
sudo systemctl status mysqld

修改默认端口号

sudo vi /etc/my.cnf => + port=30005
sudo systemctl restart mysqld

首次使用随机密码登录,并修改root密码

grep ‘temporary password’ /var/log/mysqld.log => 复制随机密码
mysql -uroot -p
set password = password(‘Ding@2017’);

创建数据库 + 添加用户,并授权远程访问

grant all privileges on dingDB.* to dingyou@’%’ identified by ‘dyAdmin@2017’;

更新生效

FLUSH PRIVILEGES;
quit


Nginx 安装配置

安装

1
2
3
4
5
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
sudo yum -y install -y nginx
sudo systemctl enable nginx && sudo systemctl start nginx && sudo systemctl status nginx
sudo mkdir -p /wwwroot/myapp/test

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo vi /etc/nginx/conf.d/default.conf =>
server {
listen 80;
server_name test.gbtong.com;
location / {
root /wwwroot/myapp/test;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
// 测试本地是否成功,
cd ~ && wget http://test.gbtong.com && cat index.html

反向代理参考

1
2
3
4
5
6
7
8
9
10
11
# /etc/nginx/conf.d/default.conf/xxx.conf
vi /etc/nginx/conf.d/default.conf {
server {
listen 80;
server_name taqing.me www.taqing.me;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
}

常用命令:

  • nginx -a reload : 检查配置语法
  • nginx -s reload :修改配置后重新加载生效

node 安装部署

选择版本

[查看最新文档版本: 选择LTS稳定版] (https://nodejs.org/)

获取链接

[查看最新稳定版的下载位置] (https://nodejs.org/dist/)

下载安装

逐行复制命令,贴到终端执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cd /usr/local/src
sudo wget https://nodejs.org/dist/v6.10.1/node-v6.10.1-linux-x64.tar.xz
sudo tar -xJf node* && sudo mv node* /opt/
# 安装node, 注意修改版本号
sudo ln -s /opt/node-v6.10.1-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /opt/node-v6.10.1-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
# 安装cnpm, 注意修改版本号
sudo npm install cnpm -g --registry=https://registry.npm.taobao.org
sudo ln -s /opt/node-v6.10.1-linux-x64/bin/cnpm /usr/local/bin/cnpm
# 安装forever, 注意修改版本号
sudo cnpm install forever -g
sudo ln -s /opt/node-v6.10.1-linux-x64/bin/forever /usr/local/bin/forever
# 检测是否安装正确
clear && node -v && npm -v && cnpm -v


说明:

  • 为什么用ln命令建立软连接? 如果你想部署新版本了,修改一下软连接指向新版本,是不是很方便?
  • 为什么 node -v / npm -v 命令找不到? 软连接建立错误了呗, 检查一下那个字符打错了吧.
  • 为什么安装cnpm? 这个是npm库的淘宝镜像,如果你愿意接受国外站点慢速下载的话,可以不安装.

出错:

  • npm等命令找不到, 请查看centos7安装部署文档, sudo的path环境变量没有设置
  • ln 建立错误怎么办? 进入/usr/local/bin目录, 使用ls命令查看,文件名红色的,那就是错了, 用rm 命令删除即可.