之前有写过一个使用容器技术docker,部署Calibre-web的教程。但是,使用docker有个问题,就是不知道怎么添加电子书转换工具,无法实现电子书格式的在线转换。(如果有大拿知道,基于docker下的calibre-web怎么设置电子书转换工具,望请留言告知,谢谢。)
- 2019-3-5更新:
后来强迫症发作,还是自己封装了一个docker镜像,解决的转换的问题,详细参考calibre教程第3篇
所以,还是无奈,试着用虚拟机直接假设calibre-web网站,来体验完整的功能,这里做一下记录
calibre-web的Github地址在这。可以从这下载大源代码。
基础背景
- CentOS 7
- 安装了宝塔面板,非必须
- 安装了LNMP
- 确保服务器开放了8083端口
安装calibre-web网站
- 检查是否安装了python 2.7+
python2 --version
如果安装了宝塔面板,应该默认就会安装好python2.7。如果没有,则手动安装一下
- 将之前下载的源码上传到服务器上任意文件夹。可以使用宝塔面板完成。这里放到
~/calibre-web
下,解压后会看到有一个requirement.txt和cps.py文件。下一步要用。
- 运行下方命令安装web
#进入文件夹内
cd ~/calibre-web
#使用python安装
pip install --target vendor -r requirements.txt
- 安装可能会遇到一个错误
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-*(其中×与要安装的软件有关)
参考这个。运行一下命令,再重新运行上面的pip命令执行安装,应就Ok了
sudo python -m pip install --upgrade --force pip
sudo pip install setuptools==33.1.1
- 执行
python cps.py
运行程序。但是如果直接使用这个命令,一旦退出了SSH窗体,web程序就停止了。所以可以借助screen程序,将cps.py放在后台运行
yum install screen
screen -S cps
cd ~/calibre-web/
python cps.py
如果看到显示如下命令行信息,则证明服务器成功运行了。
下面就可以通过http://服务器IP:8083 来访问网站了。
- 但是到这还不算完,为了使用网站的电子书转换功能,还需要在服务器上安装calibre软件。
安装Calibre
可以在这个网站直接找到安装的命令行
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
运行后,就可以直接安装成功了。可以使用ebook-convert --version
来检查安装的转换器是否成功。如果成功会返回转换器的版本号。
设置calibre-web
第一个坑是,设置数据所在的目录。猜想可能是web程序本身是不能生成数据库文件的,所以在指定calibre数据库位置之前
- 先使用win上的calibre程序创建一个空白的数据库文件metadata.db
- 将这个metadata.db文件传到你想放置电子书文件的文件夹内,同时修改文件夹权限为777,以确保web程序有权修改数据库。
- 重点来了,如果需要使用calibre的ebook-convert功能来转换电子书格式,需要在设置中,指定ebook-convert程序的路径,一定要指定到ebook-convert文件为止,如果只写到文件夹是无效的
然后就可以在界面上通过书籍的编辑界面,进行书籍的转换了。
但是,书籍的转换非常的耗CPU,转换过程很慢,而且有很多问题。所以还是建议在本地电脑上使用Calibre程序转换格式后上传,毕竟个人电脑的性能比一般的VPS性能强很多。
好了,到此算是完整部署了calibre-web网站。Have fun!
版权属于:CraZyMoNk
本文链接:https://blog.peacharc.com/archives/192.html
转载时须注明出处及本声明
3 comments
你好,我想问下安装成功了然后如何绑定域名呢
你好,我想问一下,你知道如何使用googledrive或onedrive作为书库的存储空间吗?第一栏数据库位置那里 有个“是否使用googledrive”的选项,勾选以后提示“没有相关依赖”,是指的什么呀?谢谢
好像只支持用googledriver做存储空间,但是如果需要使用googledriver的话,需要安装额外支持的组件。因为我不需要使用googledriver,所以就没有研究,你可以去官方的github上看一下说明。