码良后端代码正式开源 —— 高扩展网页制作平台

栏目: 软件资讯 · 发布时间: 5年前

内容简介:源码部署 码良项目目前(2019/11/1)已经完全开源。因此这里说明下如何使用源码将整个项目运行起来。 项目构成 码良系统由3个项目构成,分别是 gods-pen-server 码良服务端、gods-pen-admin 码良管理后台以及于7...

源码部署

码良项目目前(2019/11/1)已经完全开源。因此这里说明下如何使用源码将整个项目运行起来。

项目构成

码良系统由3个项目构成,分别是 gods-pen-server

码良服务端、gods-pen-admin

码良管理后台以及于7月份就已经开源的 gods-pen 码良编辑器。

从上述项目的名称上很容易看出各部分之功能,这里不再赘述。

其中码良编辑器和码良管理后台是 vue 项目,码良服务端是基于 egg 的 nodejs 项目。

开发环境运行

鉴于项目略多,我们开发了一个小 工具 来帮助您完成大部分工作,比如项目拉取、依赖安装、dev 运行等。

# 全局安装 gods-pen-cli 工具
npm install gods-pen-cli -g

运行 gods-pen serve help 可以看到有三个子命令。

码良后端代码正式开源 —— 高扩展网页制作平台

gods-pen serve fetch

使用 gods-pen serve fetch 拉取代码并安装依赖。工具自动在当前目录(cwd)目录拉取项目源码(如果 git 可用,则使用git),然后依次安装项目依赖。

码良后端代码正式开源 —— 高扩展网页制作平台

当然,你也可以不借助这个工具,从 github clone 项目即可。安装依赖也很简单,分别在三个项目根目录下 yarn 搞定。

项目配置

码良依赖了 es、 redismysql 、邮件、oss服务,因此需要配置这些服务的信息。

如果你有读过前一篇文档“docker 部署”部分,您应该知道我们在 docker 部署方式下默认提供了 es、redis、mysql 服务。但是在源码部署方式下,很难为您准备好这一切第三方服务,您需要选用云服务商提供的服务或者自建服务(安装 mysql、es、redis),这里不再详细叙述。对了,目前仅支持阿里云的 oss 服务(使用了对应的api)。

在获得了上述第三方服务之后,除 mysql 外,您无需对这些服务进行额外的初始化操作。当然,建立 oss bucket 这种操作就不提了。

mysql 需要提前使用 gods-pen-server/sql/init.sql 来初始化表结构和表数据。

mysql -h <host> -u<user> -p<password> < sql/init.sql # 请将<host> <user> <password> 换成实际值

至此,配置准备工作完成。

我们有三个项目,但是实际上,您无需逐一配置,我们已经提供了合适的默认配置,你只需要配置好第三方服务的信息即可,将信息填入 gods-pen-server/config/config.dev.js

码良后端代码正式开源 —— 高扩展网页制作平台

gods-pen serve start

在当前目录(记得从 gods-pen-server 返回上一级)下运行 gods-pen serve start,即可启动所有服务。

码良后端代码正式开源 —— 高扩展网页制作平台

启动成功后访问 http://127.0.0.1:8567 注册用户、登陆系统

生产环境部署

生产环境的部署分两部分,前端静态资源的部署和 nodejs 服务的部署。

nodejs 服务

将 gods-pen-server 项目 clone 到服务器内,这一步您也可以通过 gods-pen 工具完成,类似上面开发环境的操作。

依赖安装好后,将第三方 es、redis、mysql、邮件、oss 服务信息配置到 gods-pen-server/config/config.production.js 内。

运行 npm run serve 启动服务,服务启动后,服务地址为 http://127.0.0.1:7051/api

您应该使用 nginx 或其他服务器软件对 api 服务进行合理配置,使得外网能方便访问,比如将 abc.com/api 转发到 127.0.0.1:7051/api

server {
  listen 80;
  server_name abc.com; # 您的实际 ip 或者域名
  root /usr/share/nginx/html;

  # api 反向代理
  location ^~ /api {
    proxy_pass http://127.0.0.1:7051;
  }
}

前端项目部署

将 gods-pen-admin 和 gods-pen 项目 clone 下来,或者通过 gods-pen 工具也行。

安装依赖,然后在 gods-pen-admin/src/config/production.js 和 gods-pen/src/config/production.js 中添加配置 API_PATH

module.exports = {
  API_PATH: 'http://abc.com/api' # 配置为实际 nodejs api 服务外网可访问的路径
}

在当前目录(gods-pen-admin 的上一级)运行 gods-pen serve build 开始构建项目,完成后所有输出文件集中在当前目录下的 gods-pen-dist 下。

使用 nginx 或者其他服务器软件启动静态资源服务,将 gods-pen-dist 下所有文件复制到服务器软件指定目录下,您可以通过 http://abc.com/admin 访问到码良系统的入口页面

以下是一个 nginx 配置文件示例

server {
  listen 80;
  server_name abc.com; # 您的实际 ip 或者域名
  root /usr/share/nginx/html; # 静态资源文件存放路径

  # gzip
  gzip on;
  gzip_min_length 256;
  gzip_vary on;
  gzip_types *;

  # 所有静态资源及缓存
  location ~* .*\.(jpg|gif|jpeg|css|png|js|wasm) {
    expires 10d;
  }

  # view路径,即渲染器,需要开启 history 模式
  location ~* ^\/view\/[a-zA-Z0-9]+(\/|\?.*|)$ {
    index index.html;
    try_files $uri $uri/ /view/index.html;
  }

  # api 反向代理
  location ^~ /api {
    proxy_pass http://godspen:7051;
  }
}

troubleshooting

拉取代码失败

由于一些众所周知的原因,github 的服务在某些时间某些网络环境下是不稳定的,如果出现了代码拉取失败的情况,请为你的命令行环境设置代理后再运行 gods-pen serve fetch

安装依赖失败

码良后端代码正式开源 —— 高扩展网页制作平台

这是由于缺少 c++ 编译环境造成部分 npm包编译失败,则通常发生在 window 系统上,您可以尝试全局安装 windows-build-tools

windows-build-tools 是一个 npm 包,可以一键安装 c++ 编译所需的 python 27、Visual Studio、C++ Build Tool 等。 Both installations are conflict-free, meaning that they do not mess with existing installations of Visual Studio, C++ Build Tools, or Python

另外上述问题在 python2 命令不可用时也会发生,如果您的机器没有安装 python 或者只安装了 python3 时,请安装 python27,或使用 pyenv 将 python 版本切换至 python2


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Perl语言入门 第六版(中文版)

Perl语言入门 第六版(中文版)

Randal L.Schwartz、brian d foy、Tom Phoenix / 盛春 / 东南大学出版社 / 2012-3 / 62.00元

《Perl语言入门(第6版)(中文版)》根据作者施瓦茨、福瓦、菲尼克斯从1991年开始的教学经验积累汇聚而成,多年来十分畅销。此次第六版涵盖了最新的Perl5.14版本的变化。《Perl语言入门(第6版)(中文版)》每章都包含若干习题,帮助你巩固消化刚学到的知识。也许其他书籍只是想着灌输Perl编程的条条框框,但《Perl语言入门(第6版)(中文版)》不同,我们希望把你培养成一名真正的Perl程序......一起来看看 《Perl语言入门 第六版(中文版)》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试