前言

最近想看书,明天开始搭。
搭建完了,明天开始写。
想了一下正文前面部分本来想直接给个之前文章的链接的,但是想了想,为了完整性,还是给引用过来了,反正都是我自己写的,对吧。

正文

1. 云服务器的选择

这一部分和之前的那一部分其实是没有区别的,但是为了文章的完整性,我还是直接从那边把这一部分截取过来了。(参考来自:[无敌小白版]阿里云服务器+宝塔halo个人博客搭建

云服务器选择的话,个人觉得虚拟主机和云服务器都可以没有太大的所谓,但是鉴于云服务器比虚拟主机的价格实在是便宜太多了,所以还是建议选云服务器吧,两者区别不大。地区的话国内外都可,虚拟主机国内偏便宜,云服务器国外偏便宜。国内优点是网速快,但是缺点要备份;国外优点是网速慢对于国内而言,但是不用备份。

机器描述价格/元
华北2虚拟主机(1年)Linux+CPU单核+内存1G+每月高速流量200G+网页空间5G+数据库500M+峰值带宽5Mbps500
新加坡虚拟主机(1年)Linux+CPU单核+内存1G+每月高速流量200G+网页空间5G+数据库500M+峰值带宽5Mbps632
轻量应用服务器(1年)CentOS+CPU2核+内存1G+每月流量400G+ESSD40G+峰值带宽3Mbps468
新加坡轻量应用服务器(1年)CentOS+CPU2核+内存1G+每月流量1024G+ESSD40G+峰值带宽30Mbps288

这里以新加坡轻量应用服务器为例子,首先登录阿里云账号,点击进入控制台>轻量应用服务器>服务器列表>创建服务器>立即购买,按照以下来选择轻量应用服务器:

一级选项二级选项三级选项
地域和可用性亚太新加坡
镜像系统镜像CentOS 7.3
套餐配置#因人而异,一般最便宜的就够了
额外数据盘#因人而异,我的是0GB
购买市场#因人而异
到期自动续费#建议勾上,不然写了很久的ebook突然被释放了那哭死
购买数量1

购买之后在控制台>轻量应用服务器>服务器列表中,就可以看见我们购买成功的轻量应用服务器了,点击进去。在概览>应用搭建>站点设置可以看见我们的域名还没有被绑定与解析,这个我们之后在做。
安全>防火墙下可以看到防火墙的规则,默认放行端口为80、443、22。这里我们点击添加规则,规则如下。我们放行端口8888和端口8083,这两个端口分别是宝塔默认端口和Calibre-web默认端口。在放行完端口之后,我们便可以开始安装宝塔了。(这一部分和之前不太一样)

应用类型协议端口范围备注
自定义TCP8888#随便填
自定义TCP8083#随便填

2. 宝塔面板安装

A. 服务器连接

服务器连接,我们将会和上一篇文章一样,直接从阿里云提供的网页进行远程ssh连接。首先,我们去到控制台>轻量应用服务器>服务器列表,可以看到我们购买好的服务器,当然我们刚才已经进行过端口放行了,只是再重复一遍。进入到进入到服务器运维>远程连接>客户端>远程连接,我们会看见阿里云直接给我们提供了命令行Terminal。我们此刻已经远程ssh连接完成了。

B. 宝塔面板安装

宝塔的安装需要超级用户root的权限,所以如果以下信息的朋友,请先输入sudo su root命令。

Loaded plugins: fastestmirror
You need to be root to perform this command.

输入完sudu su root转换为root用户后,输入宝塔安装命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

等待一会儿后,安装就完成了(如果期间提示(y/n)选择,选y就可以。)。我们的控制台上出现了以下输出内容。这啥我们的服务器宝塔面板的访问地址,乱码是为了服务器安全,我们把这些信息给截图保存下来,如果忘记了可以在服务器的服务器运维>远程连接>远程连接中,输入bt default重新查看。

外网面板地址:`http://外网IP:端口号/乱码`
外网面板地址:`http://内网IP:端口号/乱码`
username:xxxxxxxx
password:yyyyyyyy

我们复制http://外网IP:端口号/乱码到浏览器打开,会发现宝塔已经被安装好了。接着点同意,他会要求注册账号,于是便注册账号。首次进入宝塔面板会有软件的推荐安装,这个我们直接关掉,我们只需要后面从软件商城中自行安装docker和nginx就好了。

首先,在左侧看到安全>防火墙,会发现与阿里云的放行端口相似。事实上,是一模一样,在阿里云放行了什么端口,我们就在这里的防火墙放行什么端口。宝塔默认放行端口80、22、8888,但是没有放行端口443和8083。于是便在防火墙栏低下输入端口与备注/说明,点击放行,依此放行443和8083.

放行端口端口备注/说明放行
443#可以不填,建议填阿里云自带放行端口
8083#可以不填,建议填Calibre-web放行端口

C. Docker安装

在安装完宝塔,和放行完端口之后。安装宝塔的最重要的两件事情来了:

  1. 安装Docker:为了管理Calibre-web
  2. 安装Nginx:为了反向代理

首先我们进行Docker的安装,我们去往左侧菜单栏软件商店>应用搜索,搜索Docker,然后点击Docker管理器>安装>确定。我安装的版本的Docker管理器-3,过程会需要耗费点时间,请耐心等待。
Docker管理器安装结束后,终于准备开始我们的Calibre-web安装了,o( ̄▽ ̄)ブ撒花。

3. Calibre-web安装

A. 进行安装

在安装完Docker之后,我们直接用ssh命令行来拉取Calibre-web,而不是通过宝塔面板(因为文章里面是这样做的=。=,我也就跟着有样学样。)进入到进入到服务器运维>远程连接>客户端>远程连接,开启命令行Terminal。
首先,拉取镜像,输入以下命令。(拉取镜像时间可能稍微有点长,请耐心等待...)

docker pull ctiself/calibre-web

然后,创建容器,输入以下命令。

docker create --name=calibre -v /docker/calibre:/config -v /mnt/books/calibre:/books -p 8083:8083 ctiself/calibre-web

最后启动容器,输入以下命令。

docker start calibre

到这一步,Calibre-web就创建并且启动好了。我们直接输入http://IP:8083进行查询。相信大家此刻能够很清楚的看到这一画面了,这就证明,我们即将要成功了。

3b2ed25f21fed384cdaa46daefbfbaf

但是,请不要太激动,请先不要动任何这个页面上面的任何东西,因为这个网站少了一个很严重的.db文件(视频里面说的,我也没有测试过)。
回到宝塔面板http://外网IP:端口号/乱码,输入用户名和密码。去到文件上方的根目录>mnt>books>calibre上传一个metadata.db文件。文件下载地址在下方。(参考来自:妈妈再也不用担心我没书看了!服务器搭建一个个人图书馆!走到哪里就带到哪里!

文件:metadata.db
链接: https://pan.baidu.com/s/15cfWwkTRmcajTkGt2FPAGg
提取码: crew
--来自百度网盘超级会员v6的分享

上传文件之后,便可以开始对配置文件进行操作了。对于基本配置的操作,最早的参考网址已经被删除了,找到一个来自简书的教程。(参考来自:建站第四篇 使用Docker部署calibre-web私人云书库

首先是Library Configuration的配置,在Location of Calibre database内输入/books

5a3b7b811c8cfddf9f393ae388b680b

接着,Server Configuration的配置不用更改;

8859162fd343ee3de56857ae6a58706

我们直接跳跃到Logfile Configuration,在Location and name of logfile (calibre-web.log for no entry)内输入/config/calibre-web.log

93b38e104c0de792bd3b93ba3aa9bd7

接下来是Feature Configuration,其实这个地方的点法因人而异,我是仿造的妈妈再也不用担心我没书看了!服务器搭建一个个人图书馆!走到哪里就带到哪里!里面的点法。但是,无论如何得点击一个允许上传吧,不然怎么上传书呢?

72988f956cc0b81e8dfdf09091c3f5e

最后是External binaries,由于本Calibre-web自带电子书转换,所以我们跟着填写即可,首先点击 Use calibre's ebook converter,然后分别在Path to convertertool和Location of Unrar binary输入/usr/bin/ebook-convert/usr/local/bin/unrar

1839e75b51c635adf6db76c0d32e7c0

然后,点击Submit提交~!然后会显示Calibre-Web configuration updated然后我们点击Login,进入到登陆页面,默认的用户名和密码为adminadmin123,就发现到我们的图书馆啦!

B. 遗留问题(解决)

但是细心的朋友会发现,我的图书馆里面为什么会出现那么多莫名其妙的书。这让我觉得也很奇怪... 我怀疑是之前metadata.db的问题,但是由于多出来的书只有1945本,也不算特别多,一个一个删除掉就可以了。(至于为什么要删除掉,因为这些书的数据本来就不存在于你的网站上面,所以很奇怪...)
**如果你要问我要自己手动删除1945本,那要删除到猴年马月啊。**那1945本肯定不是用手删除啦,不然小手手都报废了,就此顺便安利一款好用的键鼠模拟软件(其实也是自己手删了一会儿实在受不了去找的,用这个大概自己录制一个删除的动作,大概一个晚上睡觉的时间就删除完了。)

文件:简单百宝箱键盘鼠标录制精灵软件 4.0
链接:https://pan.baidu.com/s/1od6tL056AHYx3o_zrmx7ow
提取码:9uvd
--来自百度网盘超级会员V6的分享

如果有同学发现是什么问题的话,请务必告诉我!这一个一个删除还是很恐怖的。

上面那个键鼠录制软件还是很好用的,但是问题已经找到了,的确是metadata.db的关系,前文的作者估计是从自己已经有的书库里面下载下来的,确实能用,但是缺点就是会出现1945本不存在/books这个路径的书,需要一个一个路径删除。上网的metadata.db已经是星海自己删了1945个,没有任何书的.db文件了。(也就是上文已经是最新的了,应该不会出现问题的。)

大部分童鞋如果没有这个文件,都会出现下面这个问题。

c44b74dd30d88160312772b8664a488

后来发现是因为This app requires you to have an existing calibre database at the /books location,具体问题请看DB location is not valid, please enter correct path #30,有详细解释,这里也就不过多赘述了。

还是想多啰嗦一下,上面Github问题中,也提供了如何制造一个全新metadata.db的方法,通过Calibre,只是星海没有意识到这个问题,傻傻的删了一个晚上= =。所以人还是要多思考呀。如果星海的失效了的话,这里还有一个来自Google Drive的metadata.db,不过国内的小伙伴无法下载,需要VPN。

24eb56be63aabfaa50b01416964cd9f

4. 域名解析与反向代理

很好哈,我们又来到了这个域名解析和反向代理了,但是这次的反向代理要比之前简单得多,但是在此之前呢,同样为了完整性,我将会照搬[无敌小白版]阿里云服务器+宝塔halo个人博客搭建内关于域名解析与反向代理的一大部分内容,就是这么偷懒~。

A. 域名解析

首先,说到域名解析,我们首先得购买域名对不对,直接通过阿里云购买域名即可,进入控制台>域名>域名列表>域名注册,通过查询域名,找到一个自己喜欢的而且没有被注册的域名,然后加入清单>立即结算>立即购买,付完款之后,就会发现域名已经在控制台>域名>域名列表下面了。我们直接在我们选好的域名行上,找到操作>解析>添加记录,添加记录的格式如下:

一级选项二级选项
记录类型A-将域名指向一个IPV4地址
主机记录xxx.你购买的一级域名
解析线路默认
记录值#云服务器的公网ip
TTL10分钟

这里有两个需要解释的地方,一个是域名,一个是云服务器的公网ip。

  1. 对于域名而言,又分为一级域名和二级域名,这里主机记录中的你购买的一级域名,其实就是你购买的域名字符串+域名后缀,比如说你买了一个seanzou.com,那么域名字符串就是seanzou,域名后缀就是com,所以这个地方主机记录应该是xxx.seanzou.com。值得注意的是xxx.seanzou.com这个地方是一个二级域名,xxx可以是任何东西,比如ebook,比如blog都是可以的,这个地方我们是个ebook,电子书嘛,ebook,所以我们一般将主机记录设为ebook.seanzou.com,也就是本站。
  2. 对于云服务器的公网ip查询,请进入控制台>轻量应用服务器>服务器列表>你所购买的服务器>概览>服务器信息>IP地址这一栏,会发现有一个(公)和一个(内),我们选择公网的IP地址。也就是(公)xxx.xxx.xxx.xxx后面这xxx.xxx.xxx.xxx一串。

好了,这里域名解析已经完成了,但是通常为了保险起见,我都会去轻量服务器里面再域名解析一遍。即进入控制台>轻量应用服务器>服务器列表>你所购买的服务器>站点设置>域名>添加域名,输入域名ebook.seanzou.com即可(这里以我的在线图书馆为例),然后确认,但是通常会显示域名已解析,那就说明我们之前解析成功了。很好,目前为止域名解析已经完成了,剩下的就是反向代理,反向代理我们用的是宝塔面板来安装。

B. Nginx反向代理

好der,然后我们又回到了反向代理这个地方,要遇到我们的老同学了Nginx,不过这次Nginx并没有那么可怕,这次并没有太多复杂的操作,但是无论如何,我们先安装Nginx吧!

我们看往左侧菜单栏软件商店>应用搜索,搜索Nginx,然后点击安装>Nginx 1.21.0>极速安装>提交>确定。我安装的版本的Nginx 1.21.0,过程会需要耗费点时间,请耐心等待。

等待Nginx安装完毕后,我们点击左侧网站>添加站点,输入如下后点击提交(注意这里的域名是我们的一级域名seanzou.com,而不是二级域名)。

一级选项二级选项
域名seanzou.com
备注seanzou_com(一般为自动填充)
根目录/www/wwwroot/seanzou.com(一般为自动填充)
FTP不创建
数据库不创建
PHP版本纯静态
网站分类默认分类

提交后我们会发现在网站管理中会出现我们刚刚添加的站点seanzou.com,我们点击同行的操作>设置,在域名管理中输入我们的二级域名ebook.seanzou.com,然后点击添加。

到目前为止,不要气馁,已经快结束了,而且接下来的一步很重要,因为Nginx由于版本的不同,配置文件可能会有很大的不同。你不会在期待我这句话吧?(笑)但是其实这次会比上次简单的多。

去到域名管理同栏的,反向代理(为什么这次那么简单,Halo那么复杂,果然是Halo有问题~),点击添加反向代理。(反向代理参考自:VPS服务器Docker搭建Calibre-web个人电子书库教程)代理名称随意填写,目标URL为http://127.0.0.1:8083即可完成。具体操作如下图。

7a95eefe4909b58e4d9adec586a427f

不得不说,这张图好清晰。感觉比之前用表格清晰多了。O(∩_∩)O。

啊,对了,忘记说了。到这里就~~

完结撒花~★,°:.☆( ̄▽ ̄)/$:.°★ 。 又一篇文章完成咯~~

更新

  1. 于2021年7月16日0:08,完成对[无敌小白版]阿里云服务器+Calibre在线图书馆搭建的创作。

致谢

  1. 妈妈再也不用担心我没书看了!服务器搭建一个个人图书馆!走到哪里就带到哪里!
  2. 建站第四篇 使用Docker部署calibre-web私人云书库
  3. [无敌小白版]阿里云服务器+宝塔halo个人博客搭建
  4. VPS服务器Docker搭建Calibre-web个人电子书库教程

Q.E.D.


立志做一个有趣的碳水化合物