通过两种方式来实现gitbook在线电子书



一. gitbook+git+github pages实现

此种方法简单粗暴,几乎0成本。更简单的还可以直接用Hexo等工具编写个人博客

过程:

  1. 本地gitbook编写文档

  2. gitbook  build生成静态页面目录:_book

  3. 注册github,创建仓库并设置为github pages(有需要的可以顺便买个域名)

  4. 推送静态页面_book文件夹内容至github仓库,github仓库配置pages实现在线文档

  5. 域名配置



二. gitbook+git+nginx实现

搭建服务器

本人用的是centos,直接root用户进行操作

下面,正式开始安装。

第一步,安装git,nodejs,nginx

yum install -y git nginx nodejs

第二步,创建一个git用户,用来运行git服务:

useradd git

第三步,创建证书登录:

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

第四步,初始化Git仓库:

先选定一个目录作为Git仓库,假定是/data/book.git,在/data目录下输入命令:

git init --bare book.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git

chown -R git:git book.git

第五步,禁用shell登录:

出于安全考虑,第二步创建的git用户不允许登录shell,可通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

第六步,克隆远程仓库:

现在,可以通过git clone命令克隆远程仓库了,在本地电脑上运行:

git clone git@server:/data/book.git
Cloning into 'sample'...warning: You appear to have cloned an empty repository.


第七部,npm安装gitbook

第九步,编写文档

第十步,git push推送文档目录至服务器仓库(这里有些坑点)

第十一部,从远端git服务器创建web路径

第十二部,git clone 将gitbook仓库数据拉到web目录下

第十三部,在web目录下git build生成静态页面

第十四部,配置nginx将web内的_book路径配置到nginx配置文件并制定端口

第十五步,测试页面