CRAP-API——如何在Linux服務器部署CRAP-API教程

前言

以前一直用的eolinker的免費版,可是人數有限,因此想找個免費開源的API管理平臺,而後就選擇了CRAP-API。php

步驟

部署環境

LNMT部署

個人環境是以前部署的是LNMP,後面又增長的JDK和Tomcat沒部署的朋友能夠使用oneinstack一鍵自動部署來安裝好。css

Maven部署

Maven部署 | 其實正常來講,直接下載編譯好的安裝包更改下數據庫配置就闊以了,可是我當時用NGINX忘記將靜態資源跳轉,一直加載不到靜態資源,因此克隆了源碼,用Maven從新又打了包。html

建立虛擬主機

# cd oneinstack
# ./vhost.sh 

#######################################################################
#       OneinStack for CentOS/RedHat 6+ Debian 8+ and Ubuntu 14+      #
#       For more information please visit https://oneinstack.com      #
#######################################################################

Please choose to use environment:
        1. Use php
        2. Use java
Please input a number:(Default 1 press Enter) 1

What Are You Doing?
        1. Use HTTP Only
        2. Use your own SSL Certificate and Key
        3. Use Let's Encrypt to Create SSL Certificate and Key
        q. Exit
Please input the correct option: 3

Please input domain(example: www.example.com): <域名>
domain=<域名>

Please input the directory for the domain:<域名> :
(Default directory: /data/wwwroot/<域名>): 
Virtual Host Directory=/data/wwwroot/<域名>

Create Virtul Host directory......
set permissions of Virtual Host directory......

Do you want to add more domain name? [y/n]: n

Do you want to redirect all HTTP requests to HTTPS? [y/n]: n
[2019年 10月 16日 星期三 09:27:58 CST] Single domain='<域名>'
[2019年 10月 16日 星期三 09:27:58 CST] Getting domain auth token for each domain
[2019年 10月 16日 星期三 09:27:58 CST] Getting webroot for domain='<域名>'
[2019年 10月 16日 星期三 09:27:58 CST] Getting new-authz for domain='<域名>'
[2019年 10月 16日 星期三 09:28:00 CST] The new-authz request is ok.
[2019年 10月 16日 星期三 09:28:00 CST] Verifying:<域名>
[2019年 10月 16日 星期三 09:28:05 CST] Pending
[2019年 10月 16日 星期三 09:28:08 CST] Pending
[2019年 10月 16日 星期三 09:28:10 CST] Pending
[2019年 10月 16日 星期三 09:28:13 CST] Pending
[2019年 10月 16日 星期三 09:28:16 CST] Pending
[2019年 10月 16日 星期三 09:28:19 CST] Pending
[2019年 10月 16日 星期三 09:28:22 CST] Success
[2019年 10月 16日 星期三 09:28:22 CST] Verify finished, start to sign.
[2019年 10月 16日 星期三 09:28:24 CST] Cert success.
-----BEGIN CERTIFICATE-----
xxxxxxxxxxxxxxxx
-----END CERTIFICATE-----
[2019年 10月 16日 星期三 09:28:24 CST] Your cert is in  /root/.acme.sh/<域名>/<域名>.cer 
[2019年 10月 16日 星期三 09:28:24 CST] Your cert key is in  /root/.acme.sh/<域名>/<域名>.key 
[2019年 10月 16日 星期三 09:28:25 CST] The intermediate CA cert is in  /root/.acme.sh/<域名>/ca.cer 
[2019年 10月 16日 星期三 09:28:25 CST] And the full chain certs is there:  /root/.acme.sh/<域名>/fullchain.cer 

Do you want to add hotlink protection? [y/n]: n

Allow Rewrite rule? [y/n]: n

Allow Nginx/Tengine/OpenResty access_log? [y/n]: y
You access log file=/data/wwwlogs/<域名>_nginx.log

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Reload Nginx......

#######################################################################
#       OneinStack for CentOS/RedHat 6+ Debian 8+ and Ubuntu 14+      #
#       For more information please visit https://oneinstack.com      #
#######################################################################
Your domain:                  <域名>
Virtualhost conf:             /usr/local/nginx/conf/vhost/<域名>.conf
Directory of:                 /data/wwwroot/<域名>
Let's Encrypt SSL Certificate:/usr/local/nginx/conf/ssl/<域名>.crt
SSL Private Key:              /usr/local/nginx/conf/ssl/<域名>.key

修改NGINX配置

注意靜態資源的跳轉不要忘記了!!!不要忘記了!!!不要忘記了!!!我就掉在這個坑裏過...修改完成後,從新載入下配置文件。java

# cd /usr/local/nginx/conf/vhost/
# vi <域名>.conf 

server {
  listen 80;
  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/xxxxx.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/xxxxx.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name xxxx;
  access_log /data/wwwlogs/xxxxxx_nginx.log combined;
  index index.html index.htm index.jsp;
  root /data/wwwroot/xxxxx/;
  
  #error_page 404 /404.html;
  #error_page 502 /502.html;
  
  location / {
                   proxy_set_header  Host $host:80;
                   proxy_set_header  X-Real-IP $remote_addr;
                   proxy_set_header x-forwarded-for $remote_addr;
                   proxy_pass http://127.0.0.1:8080;
                }

   location ~ [^/]\.php(/|$) {
                    # comment try_files $uri =404; to enable pathinfo
                    try_files $uri =404;
                    fastcgi_pass  unix:/tmp/php-cgi.sock;
                    fastcgi_index index.php;
                    include fastcgi.conf;
                    #include pathinfo.conf;
                }

      location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
                     proxy_pass http://127.0.0.1:8080;
                     expires      30d;
                }

      location ~ .*\.(js|css)?$ {
                     proxy_pass http://127.0.0.1:8080;
                     expires      12h;
                } 




}

# service nginx reload

下載CRAP

CRAP歷史版本源碼|安裝包下載 | 我這邊部署的時候,使用的是最新的包v8.1.5版本的,這邊推薦直接下載編譯好的包,並經過遠程工具SCRT上傳到服務器上。mysql

建立數據庫

解壓壓縮文件

# unzip CrapApi.v8.1.5.zip

查看SQL文件

這是便於後面方便直接導入sql文件。nginx

# cd CrapApi.v8.1.5
# ll
總用量 120
-rw-r--r-- 1 root root 112251 10月 26 16:52 2019-10-26.V8.1.5.sql
drwxr-xr-x 5 root root   4096 10月 26 16:56 api
-rw-r--r-- 1 root root    583 2月  17 2019 readme.txt
# pwd
/root/CrapApi.v8.1.5/CrapApi.v8.1.5
# mv 2019-10-26.V8.1.5.sql api.sql
# ll
總用量 120
drwxr-xr-x 5 root root   4096 10月 26 16:56 api
-rw-r--r-- 1 root root 112251 10月 26 16:52 api.sql
-rw-r--r-- 1 root root    583 2月  17 2019 readme.txt

建庫並導入SQL文件

# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 150536
Server version: 5.6.42-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> create database api_test;
Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> use api_test;
Database changed
MySQL [api_test]>  source /root/CrapApi.v8.1.5/CrapApi.v8.1.5/api.sql
Query OK, 0 rows affected (0.00 sec)
:
:
:
Query OK, 0 rows affected (0.00 sec)
MySQL [api_test]>

修改CRAP-API配置

這裏只修改了數據的配置文件config.properties,日誌的未作修改。web

# cd api/WEB-INF/classes/
# vi config.properties

配置Tomcat

刪除webapps下的全部文件

# cd /usr/local/tomcat/webapps/
# rm -rvf *

修改編譯包名

# cd /root/CrapApi.v8.1.5/CrapApi.v8.1.5
# mv api ROOT
# ll
總用量 120
-rw-r--r-- 1 root root 112251 10月 26 16:52 api.sql
-rw-r--r-- 1 root root    583 2月  17 2019 readme.txt
drwxr-xr-x 5 root root   4096 10月 26 16:56 ROOT

移包並啓動服務

# cd CrapApi.v8.1.5/CrapApi.v8.1.5/
# cp -rvf ROOT/ /usr/local/tomcat/webapps/
# cd /usr/local/tomcat/bin/
# ./ startup.sh

訪問頁面

相關文章
相關標籤/搜索