Skip to content
基于Golang的个人简易博客系统
Go
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
conf 修复客户端数据库连接有效时间 Feb 28, 2019
src 日志切换校验处理 Apr 18, 2019
static 增加md文章目录 Apr 17, 2019
views 解决图床图片403 May 5, 2019
.gitattributes Create .gitattributes Feb 1, 2019
.gitignore add ignore rule Jan 25, 2019
Gopkg.toml
LICENSE
README.md
go.mod init project Jan 17, 2019
go.sum init project Jan 17, 2019
main.go

README.md

goblog

基于Golang的个人简易博客系统

[TOC]

goblog介绍

goblog基于go语言开发的一个简约版个人博客系统,基于Golang语言编写,后端基于了Beego的web框架,目前具备博文系统最基础的功能模块.基本上是一个拿来即用的个人博文平台,只需要部署一个mysql数据存储服务,即可作为个人博文的发布平台使用. 请给我一个Start : https://github.com/liangyd1024/goblog

goblog界面截图

后台管理

PC前端展示

手机前端展示

goblog技术组件

  • 基于go语言,
  • 集成于beego的web框架

https://beego.me/

  • 数据持久mysql
  • 博文撰写组件

    支持 富文本编辑 支持 Markdown编辑 目前两款编译器中设计到图片上传资源均存储在当前服务器中,暂时没有使用第三方云存储服务

  • 站内全文检索riot

https://github.com/go-ego/riot

goblog安装部署

好了,现在让我们来手动搭建一个goblog吧!

安装

获取goblog源码

  1. 我们先通过github拉取goblog源码
  2. github地址: https://github.com/liangyd1024/goblog
  3. 这里拉取git库需要安装git,git的安装步骤这里就不在重复(网上一大把呦)
	git clone https://github.com/liangyd1024/goblog.git

安装go运行环境

各个操作系统安装go的步骤大同小异,这里我们以Linux来做示例

  1. 获取go对应的版本安装包,这里我们到go官网获取最新版本的安装文件
   wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
  1. 解压下载包
	tar -xvf go1.11.5.linux-amd64.tar.gz
  1. 配置go的环境变量
	cd ~
	vi ~/.bash_profile
	export GOROOT=$HOME/App/go
	export GOPATH=$HOME/Project
	export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
  • 编辑文件并保存
  • 这里GOROOT是指go安装包解压后所在的目录
  • GOPATH为后续应用源码所在工作目录
	source ~/.bash_profile
	go version
  • 刷新配置文件后验证go是否安装正常,这里会输出go version go1.11.5 linux/amd64

安装mysql

goblog采用mysql作为数据存储服务,so 我们需要在我们对应的服务器上安装上一个mysql服务实例并启动他提供服务(对于mysql的安装本篇幅就不做多描述,网上已经有许多实例)

  • 在安装好mysql实例后我们只需要再实例上手动建立一个mysql的Shcema,Schema的名字为为goblog,所有的表结构在goblog启动时会自动创建生成(下文有特别介绍)

部署

编译并部署goblog

通过git获取goblog源码后通过go build命令进行编译

	cd $HOME/Project/src/goblog
	go build ./
  • 源码拉取请在$GOPATH后先建立src目录(因为golang中对$GOPATH目录约定有3个子目录:src、pkg、bin),src下存放所有项目的源代码
  • 编译期间由于国内网络受限一些相关的lib会下载失败: go: golang.org/x/net@v0.0.0-20181220203305-927f97764cc3: unrecognized import path "golang.org/x/net" (https fetch: Get https://golang.org/x/net?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
  • 我们需要单独设置下go下载包的代理
  • 继续编辑配置文件~/.bash_profile
	export GOPROXY=https://goproxy.io
  • 配置好后重新执行go build ./命令 ’chua‘ 的一下依赖包就下好了
  • 执行完构建命令后我们可以在当前目录下找到刚刚构建好后的包goblog

运行goblog

上面通过go build命令构建完成后,接下来我们就可以把goblog运行起来了

在运行前我们需要先说明下几个目录的作用

  1. conf/-------项目配置文件
  • beego.conf------goblog中一些web配置
  • db.conf------数据库配置
  • log.cong------日志配置
  1. src/------go源码文件
  2. static/------静态资源(js/css/img...)
  3. views/------页面模板文件(html)
  4. main.go------主程序入口文件
  5. go.mod go.sum------go的模块lib依赖配置文件
  6. README.MD------项目介绍文件
  • 在conf下我们可以将对应要链接的数据库的地址进行配置,编辑db.conf

  • 直接运行刚才我们构建好的应用文件

  •  ./goblog
    
  • 我们也可以先通过go mod tidy命令将应用的依赖包下载下来然后使用go run main.go来运行我们的goblog

  • 运行后可以通过控台查看到启动日志

  • goblog启动后会建立默认的账号和密码:admin/goblog,我们通过访问127.0.0.1:9090/admin可以登录到后台进行博文的发布,发布完成后可以通过127.0.0.1:9090查阅已发布的博文信息

  • 登录界面

  • 博文管理

  • 博文浏览(前端展示)

这里有个地方要特别强调下,因为goblog是直接采用beego提供的orm框架来做DB操作,所以在conf/db.conf中有个配置项mysqlForce = false要特别指出,设置为true时每次启动应用时都会将对应的表结构数据清除,所以此配置项只需在首次应用使用时指定true即可(自动创建表模型),后续在生产环境或者开发环境下不需要重新格式化数据情况时请慎重开启.

You can’t perform that action at this time.