惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
L
LangChain Blog
Jina AI
Jina AI
博客园 - 叶小钗
B
Blog RSS Feed
Recent Announcements
Recent Announcements
H
Help Net Security
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
B
Blog
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客

山月

在VS Code配置Obsidian風格Markdown編輯環境 – 山月 在Windows通过LM Studio使用Zotero MCP – 山月 禁用WordPress中Jetpack的AI助手按钮 – 山月 WordPress/MCP Adapter安装与维护指南 – 山月 WordPress服务器权限与所有权配置详解 – 山月 在Windows上為GnuCash啟用線上報價 (Finance::Quote) – 山月 Gitea Docker /var/empty 权限问题除错总结 – 山月 Bookwyrm由0.7.5升级至Production(e217a17)完整过程及疑难解答 – 山月 用正则表达式修改ruby标签 – 山月 为WordPress Syndication Links插件添加新的站点与图标的实现方法 – 山月 进入不断重启的Docker容器的命令行之方法 – 山月 自建Bookwyrm无法查询远端用户?——开启数据库扩展 – 山月 BookWyrm无法增添书本、作者、阅读进度……?——解决数据库自增序列问题 – 山月 俾Docker容器中的应用访问宿主机上的数据库服务 – 山月 QNAP NAS使用者注意!千万莫对MariaDB做这件事…… – 山月 解决Wikibase手动导入数据后无法新建实体之问题 – 山月 辰年再訪神保町 – 山月 PHP-FPM站点池配置调优以解决WordPress过度占用系统资源之问题 – 山月 如果Linux软件包常规升级失败——以python3-update-manager为例 – 山月 解决站点526报错:SSL证书配置错误 – 山月 風挾着陽光來 – 山月 和A.N.R.GHG插件说bye-bye – 山月 WordPress页面链接末尾出现“?swcfpc=1”后缀,是怎么回事? – 山月 安装、维护Monica PRM的一些笔记 – 山月 清理服务器空间的着手点 – 山月 关于Joplin Server文件上传大小上限 – 山月 如何优化PHP文件上传大小:完整指南 – 山月 WordPress站点部分地出现“严重错误”的一些可能的解法 – 山月 批量更改WordPress媒体URL – 山月 自托管WordPress编辑文章出现问题的排查法 – 山月
Koha 22.05安装教程(于Ubuntu 20.04 LTS) – 山月
2022-07-27 · via 山月

前言

弄个家庭图书管理系统是笔者自小的愿望。笔者的需求是:

  • 能够记录馆藏的元数据,并再度编辑之;
  • 使馆藏登记于所在的分馆、书架,并能够更改所在信息(移动书目);
  • 使上述信息可被查询
  • 使上述操作能够随时随地进行;
  • 使上述操作能够由多用户执行。

在忽略倒数两个需求的基础上,多年以来,笔者先后使用了MS Excel、MS Access。简单直接则简单直接矣,但嫌数据的填写与查询对小屏幕的移动设备太不友好。

至于「随时随地」与「多用户」这两点,利用云存储(如OneDrive)及其分享功能(开放阅览、编辑权限)倒是能勉强解决,不过如果能在浏览器上浏览一个为图书管理这一需求专门优化过的界面,则会更为如意。

于是,有几款支援在线查询与修改的服务进入了笔者的视线。其中两款,分别是Calibre-Web,以及本文所言及的Koha

关于Koha的安装,网上有很多教程,其中多数坐年代久远,不合现在情况。笔者根据自己的实际安装经历,将安装过程中每一个需要的步骤开列如下,希望让对代码苦手者也能简单照做。

简介

Koha的图书管理界面

根据中文维基百科的描述,Koha是全球第一家免费且以开放源代码方式授权的图书馆自动化管理系统,以专业化见长。它使用MariaDBMySQLSQL数据库存储数据,图书管理通讯格式为机读编目格式标准,查询界面可以是Z39.50URL检索。其中使用者界面可供设定与修改,其界面也业有中文等多种语言翻译。

Koha的特色有以下几点:

  • 拥有标签、留言、社群分享与RSS等许多Web 2.0功能
  • 联合目录功能
  • 客制化搜寻
  • 网络图书流通
  • 打印条码

要求

  • Ubuntu 20.04/18.04或任何基于Debian的Linux服务器来执行本文给出的步骤;
  • Apache、MySQL或MariaDB、Perl(将安装);
  • 能够以root身份访问服务器。

笔者的软硬件

  • Koha版本:22.05.02.000
  • 服务器系统:Ubuntu 20.04 LTS x64
  • MySQL版本:mysql Ver 8.0.29-0ubuntu0.20.04.3 for Linux on x86_64 (Ubuntu)
  • Apache 版本:Apache/2.4.41 (Ubuntu)
  • 服务器RAM:512MB[后以屡有卡顿,更换为1024MB的服务器,则流畅,故推荐1024MB]

第一步:设置Koha下载源

设置包源

将GPG密钥添加到系统中,以便确认软件包未被篡改:

apt update
apt-get -y install sudo wget gnupg
wget -q -O- https://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -
sudo apt-get update

选择追踪的Koha版本

如果追踪了指定版本的套件,则每个发布周期都会自动升级到较新的分支。可用的版本有:

  • stable:当前的稳定版
  • oldstable:比当前稳定版本老的一个稳定版本
  • oldoldstable:比oldstable老的一个稳定版本

如果选择oldstable:

echo 'deb http://debian.koha-community.org/koha oldstable main' | sudo tee /etc/apt/sources.list.d/koha.list

如果选择stable:

echo 'deb http://debian.koha-community.org/koha stable main' | sudo tee /etc/apt/sources.list.d/koha.list

然后重建apt缓存更新软件包列表:

sudo apt-get update

第二步:安装Koha本体

添加Koha存储库后,只需要执行一个命令即可下载并安装之。

sudo apt install koha-common

在此过程中,Apache网络服务器也会自动安装。

第三步:安装数据库依赖

按说Koha可以使用MariaDB,唯在笔者前述的软硬件条件下,MariaDB会安装失败。这时考虑MySQL:

sudo apt install mysql-server
sudo systemctl start mysql

第四步:配置Koha

编辑文件/etc/koha/koha-sites.conf

DOMAIN值设置为之后希望访问到Koha的域名,如sanguok.com。这样,假设在后面的步骤里将Koha实例名填写为lib,安装完毕后便可通过lib.sanguok.com访问图书馆馆员客户端(staff client)。

INTRASUFFIX的填写情况亦需注意,因为在后面,DNS条目也需要比照填写。

馆员客户端和书目查询系统(online catalogue,或简称OPAC)的默认端口都是80,建议将前后两者更改为相异的非80的数字,例如馆员客户端的改为8080,书目查询系统的改为8081,以避免一些莫名其妙的问题。

第五步:设置Apache

sudo a2enmod rewrite 
sudo a2enmod cgi 
sudo service apache2 restart

如果要将Koha配置为按IP地址而不是按域名进行访问,编辑/etc/apache2/ports.conf并确保存在以下行:

Listen 8080
Listen 8081

亦即前面填写的端口号。

第六步:创建Koha实例

“实例”(instace)一词,可以简单地理解为“站点”。一个图书馆一个实例。也就是说,在本次安装过程结束后,如果你还想为其他图书馆弄一个Koha,则也可以在本服务器新建一个Koha实例。

假设本次安装的Koha实例名为sanguok,则执行:

sudo koha-create --create-db sanguok

注意:实例名可自定义

注意,实例名当然可以填写为其他的——不一定非得是sanguok。唯需小心,如果填写了不一样的实例名,本教程后面涉及sanguok这个实例名的地方,需要根据实际情况改成自己所用的。笔者会在相应代码处做加粗提示,避免读者误输入。

查看密码

在上述过程中,一个名为koha_sanguok的SQL数据库也被建立。数据库用户名为koha_sanguok,数据库密码可通过执行以下命令查看:

sudo koha-passwd sanguok

修改默认密码

该密码是机器生成的,如果希望更改之,则访问该实例的配置文件/etc/koha/sites/sanguok/koha-conf.xml(将sanguok改成实际所使用的实例名),到文件底部的<config>部分,找到被<pass></pass>包裹住的字段,这就是密码了。想修改则修改之。

SQL数据库那边也要做对应修改。以笔者实装的MySQL为例,访问数据库:

sudo mysql -u root -p

进入MySQL命令行界面。执行:

use mysql;
ALTER USER 'koha_sanguok'@'localhost' IDENTIFIED BY 'mikmamikma333';

其中,sanguok需要改成实际所使用的实例名,mikmamikma333替换为所要使用的密码。

第七步:Apache与Koha的剩馀配置

koha-plack

需要为koha-plack工作设置一个Apache模块:

sudo a2enmod headers proxy_http

然后:

sudo koha-plack --enable libraryname
sudo koha-plack --start libraryname
sudo service apache2 restart

为Koha实例创建Apache配置

还要记得创造该Koha实例的Apache配置文件。

sudo a2enmod rewrite
sudo a2enmod cgi
sudo a2dissite 000-default
sudo a2enmod deflate
sudo a2ensite sanguok

其中,sanguok需要改成实际所使用的实例名。

再复重启Apache:

sudo service apache2 restart

koha-rebuild-zebra

还要执行zebra的重建命令:

koha-rebuild-zebra -v -f sanguok

其中,sanguok需要改成实际所使用的实例名。

重启memcached

重启memcached:

sudo service memcached restart

第八步:进入网页安装程序

通过上述安装过程,我们得到了两个可以访问的链接:

http://localhost:8080 (馆员客户端)
http://localhost:8081 (书目在线查询)

虽然上述教程未有涉及,但如果配置了SSL证书,则将链接起头的协议名从http://改为https://

本教程默认用户通过IP访问Koha,则将上述链接中的localhost改为所使用的实际IP。如需通过自定义域名访问,需要另做DNS配置。

本教程所填写的端口号为80808081。若在安装过程中填写了与之不一样的数字,则改为实际填写的即可。

访问馆员客户端链接,进入网页安装程序。网页安装程序简单易懂,一步步照做即可。

唯笔者安装之时,每走一步都会报内部服务器错误,则在服务器命令行控制端执行一遍koha-rebuild-zebra -v -f sanguok(将sanguok改成实际所使用的实例名)之后,即可顺利进行下一步。原因不明,属于玄学。但笔者推测认为系属服务器内存不足,导致任务积压卡死之故,以至于需要以root权限在服务器端强制处理。后来笔者使用Koha时,也觉顿挫感过强,换到RAM为1024MB之服务器后则流畅无迟滞。

结语

如果跟着上述教程一步步走下来,则到此处盖已成功安装Koha,恭喜。

笔者之后也会分享Koha的一些配置方法与使用感想。如欲跟踪,欢迎透过RSS阅读器订阅

Also on / Aussi sur / También en / Cē̤-sē̤ iâ ô / 亦可見於 / こちらも: