接口文檔RAP2 環境搭建(正常搭建成功)

RAP2 是採用先後端分離的形式,所以搭建完整的 RAP2 須要 服務端:rap2-delos客戶端:rap2-dolores 同時部署html

部署 RAP2 須要親具備 Node+Linux+MySQL 的運維知識,若是親對此不是很瞭解,建議用 http://rap2.taobao.org 線上版本就能夠前端

因爲 客戶端:rap2-dolores 是創建在 服務端:rap2-delos 基礎上,所以先搭建服務端應用node

  • 截至到 2018-08-01 delos 並無發佈 Tag 版本,應該還處於功能開發前期階段吧。本教程是在 CentOS 機器上實戰部署
  • 然而安裝部署並非順利,所以記錄踩過的坑(別問我爲啥不用 Docker,由於我司分配的機器沒法知足 Docker 的最低內核版本),安裝環境介紹:Redis,delos,dolores 均在一臺服務器,MySQL 使用已存在的服務

安裝基本工具

  • Git
  • Node 8.9.4+
  • Redis 4.0+
  • MySQL 5.7+

以上基本工具請根據自身須要,下載對應系統安裝包,請自行解決安裝配置等問題,這裏不作過多說明mysql

Redis 安裝可參考 Linux 經常使用應用安裝
Redis 最好用非安全模式啓動
linux

服務端 delos 環境搭建

構建項目

構建項目前,請確認 Node,Redis,MySQL 服務均能正常使用nginx

1
git clone https://github.com/thx/rap2-delos.git

環境配置

建立數據庫

  • Mac or Linuxgit

    1
    mysql -e 'CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci';
  • Windows 環境github

    進入 mysql 命令後執行redis

    1
    CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

配置文件

目錄:rap2-delos/src/config
文件:config.dev.ts; 其中 dev,表示開發環境,其餘同理
修改:config.dev.ts文件中db對象中usernamepassword參數與本地或者開發環境的數據庫信息匹配sql

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

啓動項目

安裝項目依賴包

項目根目錄下執行

1
2
3
4
# 安裝項目所需依賴
npm install
# 全局安裝PM2
npm install -g pm2

安裝 TypeScript 編譯包

1
npm install typescript -g

若是下載緩慢,請使用淘寶 npm 鏡像

初始化數據庫(必需要執行的,生成數據庫初始化數據)

項目根目錄下執行 (該過程比較慢,耐心等待初始化完成)

1
npm run create-db

編譯啓動項目(可執行,也能夠不執行,知識作代碼檢查)

執行 mocha 測試用例和 js 代碼規範檢查

1
npm run check

 

  • 開發模式
    啓動開發模式的服務器 監視並在發生代碼變動時自動重啓 (第一次運行比較慢,請耐心等待)

    1
    npm run dev
  • 生產模式
    啓動生產模式服務器

    1
    npm start

看到瀏覽器中以下提示,表示服務端 delos 已經部署成功

RAP2 後端服務已啓動,請從前端服務 (rap2-dolores) 訪問。 RAP2 back-end server is started, please visit via front-end service (rap2-dolores).

或者在程序控制臺出現以下 Log,表示服務端 delos 已經部署成功
delos

常見問題

部署問題

      1. Windows 下執行npm run build,提示'rm' 不是內部或外部命令,也不是可運行的程序或批處理文件

        緣由:rm 是 Linux 下命令,
        解決方法:Windows 系統可以使用 git bash 打開該項目,執行該命令

      2. 執行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文件數據庫配置信息

        若是修改正確無誤後,執行npm run create-db依舊出錯,那麼查看該項目中是否已經存在dist目錄,若是有,請按照如上修改對應的數據庫配置信息

      3. 執行npm run dev命令,提示Error: listen EADDRINUSE :::8080
        緣由:8080 端口被佔用
        解決方法:殺掉佔用 8080 端口的應用
      4. 執行npm install 命令,提示hiredis 編譯沒法經過
        緣由:無權限操做rap2-delos/node_modules/hiredis路徑
        解決方法:sudo npm install

        若是提示sudo: npm: command not found,請參考 stackoverflow-npm,stackoverflow-node

      5. 執行npm run dev能夠正常啓動,npm start命令沒法正常啓動服務
        緣由:請使用pm2 logs查看日誌具體定位
        示例:因爲 Redis 的安全模式,不能正常使用

        1
        2
        3
        4
        5
        6
        7
        ReplyError: Ready check failed: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 

        1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent.
        2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server.
        3) If you started the server manually just for testing, restart it with the '--protected-mode no' option.
        4) Setup a bind address or an authentication password.
        NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.

        解決方法: 使用--protected-mode no方式啓動

      6. 執行npm run create-db時,ts編譯出錯,提示ctx上下問出錯,那麼在項目根目錄中找到tsconfig.js,修改noImplicitAny的值爲false便可(注意:默認是true,npm run create-db時就會報錯)
      7. redis 清除緩存
      8. 運行redis-cli     執行flushall命令清空緩存
        八、若是出現 is not allowed to connect to this mysql server的解決辦法

                                  use mysql;

                                 select host from user where user='root';

                                 update user set host = '%' where user ='root'

客戶端 dolores 環境搭建

構建項目

獲取源代碼

1
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'

在蘋果系統下:sudo npm install   在install node-sass時存在權限問題,須要執行:sudo npm install  --unsafe-perm=true --allow-root 才能夠進行安裝

啓動項目

安裝項目依賴包

項目根目錄下執行

1
npm install

若是下載緩慢,請使用淘寶 npm 鏡像

編譯啓動項目

  • 開發模式
    自動監視改變後從新編譯

    1
    npm run dev

    備註:測試用例

    1
    npm run test
  • 生產模式
    編譯 React 生產包

    1
    npm run build

    用 serve 命令或 nginx 服務器路由到編譯產出的 build 文件夾做爲靜態服務器便可

    1
    serve -s ./build -p 80

看到瀏覽器中出現登陸頁面,表示部署成功
dolores

常見問題

部署問題

  1. 執行npm run dev,提示

    1
    2
    3
    return process.dlopen(module,path._makeLong(filename))
    ...
    ...node_modules\node-sass\vendor\win32-x64-57\binding.node is not a valid Win32 application...

    緣由:項目依賴包node-sass沒有安裝徹底
    解決方法:npm install node-sass

  2. 項目運行起來,但一直停留在加載動畫那裏

    瀏覽器控制檯輸出:
    GET http://127.0.0.1:8080/account/info ==>> Failed to load http://127.0.0.1:8080/account/info

    緣由:未修改rap2-delos/src/config目錄下服務端鏈接地址, 或者修改結果與 rap2-dolores實際提供服務地址不匹配
    解決方法:修改config.dev.ts文件 serve 配置信息

    若是 Windows 系統修改正確無誤後,依舊出錯,那麼查看 hosts(路徑:C:\Windows\System32\drivers\etc) 中 127.0.0.1 的 IP 前是否有#,若是有請取消註釋

其餘

MySQL 運行問題

  • 錯誤一
    mysql
    緣由:MySQL 集成命令沒有加入系統的環境變量
    解決方法:將安裝的 MySQL Service 路徑加入系統變量
    path
  • 錯誤二
    create
    緣由:沒有數據庫連接權限
    解決方法:先登陸用 root 數據庫,密碼具體看本身數據庫當時設置的密碼

如何獲取更新

目前請選擇master分支源碼,後續其餘分支請看相應分支說明文檔。在開發環境中 git pull 來獲取最新的源碼更新,每一期更新都會有對應的 update.md 請關注並按照上面的指示進行升級工做。

附錄

相關文章
相關標籤/搜索