Maison  >  Article  >  Opération et maintenance  >  Enregistrements de problèmes liés au déploiement centos de yapi

Enregistrements de problèmes liés au déploiement centos de yapi

藏色散人
藏色散人avant
2021-07-10 16:12:162031parcourir

Avant-propos

Ces derniers jours, j'ai enfin terminé un projet de version démo de trois mois de l'entreprise. Durant cette période, j'ai eu de nombreuses disputes avec le backend de l'entreprise à propos de l'API : « Mon interface va bien, c'est toi. Ce n'est pas la bonne façon de demander ! ', 'Les paramètres que vous avez demandés doivent être erronés'... Des problèmes comme ceux-ci ont persisté au cours des trois derniers mois, simplement parce que nous n'avons pas de bonnes habitudes de gestion des interfaces, qu'un tas d'outils sans problème n'ont pas été utilisés, et la définition de l'interface est très aléatoire, essentiellement transmise verbalement. Par conséquent, je pense que la plate-forme de gestion d'interface YApi doit être utilisée en premier. De plus, Zhang Xinxu appelle également à la gestion d'interface, et le front-end devrait également utiliser les outils. Libérez la productivité et améliorez l’efficacité !

Installer node

Parce que l'installation de Yapi doit s'appuyer sur node. Google les différentes méthodes d'installation de node dans l'environnement centos, et il en existe des milliers. Mais j'ai quand même marché sur un piège. Je ne sais pas pourquoi ma méthode d'installation du code source basée sur wget a échoué. Bien sûr, ce n'était pas un échec complet, c'est parce que j'ai attendu trop longtemps pendant make, donc j'ai directement ctrl. +c. Il est préférable d'utiliser nvm pour l'installer, même si je ne sais pas si c'est raisonnable. Veuillez coder pour parler :

  • Wget téléchargez et installez nvm

       wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

    ou Curl

       curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
  • Une fois le téléchargement terminé, rejoignez l'environnement système

       source   ~/.bashrc
  • Vérifiez l'installation

       command -v nvm
  • Voir la télécommande version du nœud

       nvm ls-remote
  • Installation La version requise nécessite nodejs (7.6+)

       nvm install 10.2.1

Installer mongdb

yapi repose sur mongodb (2.6+). En théorie, Centos mongdb peut être configuré ici, à condition que centos soit 64 bits.
De même, il existe des milliers de méthodes d'installation. Utilisez ici yum pour installer

  • Modifiez la configuration de gestion des packages yum

               vi /etc/yum.repos.d/mongodb-org-3.4.repo   // 会自动新建mongodb-org-3.4.repo文件
  • Copiez les informations de configuration suivantes :

               [mongodb-org-3.4]
               name=MongoDB Repository
               baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
               gpgcheck=0
               enabled=1
  • Installez mongodb.

               yum install -y mongodb-org   // 一路yes安装mongodb
  • Modifier la configuration de mongdb (réseau public accessible : 127.0.0.1 => 0.0.0.0)

               vi /etc/mongod.conf
  • Démarrer mongodb

           systemctl start mongod.service  // 启动mongodb

S'il s'agit d'un serveur Alibaba Cloud, ajoutez le port 12071 au groupe de sécurité pour accédez-y via l'adresse publique. Bien sûr, pour le moment, c'est dangereux

Enregistrements de problèmes liés au déploiement centos de yapi

À l'heure actuelle, n'importe qui peut falsifier vos données en vous connectant à vos données mongdb. Essayez d'ajouter une vérification en ce moment. recherchez-le vous-même sur Google, par exemple :

mongo --port 27017

use admin

db.createUser(
  {
    user: "adminUser",
    pwd: "adminPass",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

## Déployez Yapi
Selon la documentation officielle, il existe deux méthodes de déploiement. Comme je n'ai pas réussi à installer la première méthode sur mon ordinateur il y a quelques jours, j'ai utilisé la deuxième méthode, plus compliquée.

mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候

Ceci n'est déployé que temporairement avec succès, mais le processus yapi doit être protégé en permanence. Ici, nous utilisons pm2

  • pour installer pm2

         npm i pm2 -g
  • Basculez vers le répertoire des fournisseurs de yapi et exécutez pm2 start

         pm2 start server/app.js  --watch
  • .

Enregistrements de problèmes liés au déploiement centos de yapi

正常的话,应该能正常访问到,默认接口是3000

Enregistrements de problèmes liés au déploiement centos de yapi

Résumé

À ce stade, vous avez cloné le code source de Yapi sur votre propre intranet. Bien sûr, vous rencontrerez encore de nombreux pièges au cours du processus. Les principaux pièges que j'ai rencontrés étaient. Pièges de l'authentification mongdb : par exemple, les paramètres d'authentification ne sont pas définis correctement, le fichier de configuration est mal configuré, ou même pm2 ne parvient pas à démarrer yapi. Bref, essayez de plus en plus, si vous ne pouvez pas le résoudre vous-même, s'il vous plaît. demandez conseil à un expert.

① Échec de l'obtention de l'authentification mongdb

Enregistrements de problèmes liés au déploiement centos de yapi

Solution : Vérifiez la configuration de mongdb ? Le paramètre d'authentification a-t-il réussi ? Le fichier de configuration de yapi a-t-il été correctement configuré ? pour démarrer Yapi et continuer à redémarrer

Enregistrements de problèmes liés au déploiement centos de yapiSolution : Vérifiez dans le journal pm2 que le service précédemment ouvert via npm n'est pas terminé, ce qui entraîne l'occupation du port avant ctrl+c. Tout va bien

Les deux premiers problèmes ne surviennent pas. Cela ne semble pas être des pièges, ce ne sont rien de plus que des barrages routiers


③La boîte aux lettres configurée échoue

Enregistrements de problèmes liés au déploiement centos de yapiSolution : Il doit y avoir une mauvaise configuration de la boîte aux lettres, alors réessayez

Je ne sais pas s'il y a quelque chose ! mal avec la boîte aux lettres NetEase ou quelque chose comme ça. Changez-le simplement en QQ. Après avoir modifié le fichier config.json, j'ai pensé que tout irait bien si je réexécutais install-server. devrait être que les informations de l'administrateur existent déjà dans yapi dans mongdb. S'il n'y a pas de données sous admin, supprimez-les. S'il y en a, modifiez simplement les données. J'étais très paresseux, alors j'ai simplement utilisé mongdb compass pour supprimer l'intégralité de Yapi, puis j'ai supprimé la base de données et je me suis enfui !

不足之处欢迎拍砖指正!

Enregistrements de problèmes liés au déploiement centos de yapi

yapi开启https访问

虽然对小白来说https然并卵,我还是想捣鼓一下试着通过https来访问我的yapi,首先证书我是有了,获取证书的方法也有千千万万种,我这里用的阿里云的免费证书,总之有证书的话应该能拿到证书文件如.pem、.key、.pfx之类文件。技术菜的我天真的以为还能开启3000端口的https访问,结果啪啪啪打脸打的很清脆,于是乎把https的端口设定成了8443。大概步骤如下:

  • 获取证书文件(默认有证书并且能拿到.key和.pem文件或者.pfx文件)

    Enregistrements de problèmes liés au déploiement centos de yapi

  • 上传证书(我直接放在app.js同级,根据个人喜好)

    Enregistrements de problèmes liés au déploiement centos de yapi

  • 修改app.js 是基于koa的 不过我没有再引用koa-ssl,直接用的node的https方法的第一种

    // 引入相关的服务和文件
    const fs = require('fs');
    const https = require('https');
    const options = {
        key: fs.readFileSync(__dirname + '/server.key'),
        cert: fs.readFileSync(__dirname + '/server.pem')
      };
    const port = 8443;
    //...
    //开启https端口
    https.createServer(options, app.callback()).listen(port)
  • 成功开启https

    Enregistrements de problèmes liés au déploiement centos de yapi

  • 同样还是踩了不少坑

    • 文件径不对 not such file
      解决:用__dirname
    • mac verify failure
      解决: 用node https提供的第一种方法引入证书文件

推荐:《centos教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer