什么是 LibreKB ?
LibreKB
是一款知识库
Web
应用程序。免费、开源、自托管,基于
PHP/MySQL
。
官方并没有
Docker
镜像,老苏这次图省事,并没有像往常一样构建一个镜像,而是基于
Docker
搭建了一个
LAMP
环境,其中
LAP
由镜像
php:8.1-apache
完成,
M
由群晖的
MariaDB 10
完成
之所以这么干,是因为上次应网友要求折腾
acg-faka
没成功,留下了一个现成的环境,干掉之前,怎么也得利用一下,发挥点作用吧
准备工作
建数据库
老苏用了群晖自带的
MariaDB 10
数据库。
在
phpMyAdmin
中创建名为
librekb
的空数据库。
为便于说明,假设数据库密码为
123456
所以根据上面的设置,最后得到的数据库相关的参数如下:
- 数据库主机:
192.168.0.199
- 数据库端口:
3307
; - 数据库用户:
librekb
- 数据库密码:
123456
- 数据库库名:
librekb
,因为勾选了与用户同名;
下载代码
下载地址:https://github.com/michaelstaake/LibreKB/releases
安装
安装镜像
在群晖上以 Docker 方式安装。
之所以没用图形界面安装,是因为后续还要在命令行安装数据库驱动
如果你熟悉命令行,可能用
docker cli
更快捷
# 新建文件夹 librekb 和 子目录mkdir-p /volume2/docker/librekb/www
# 进入 librekb 目录cd /volume2/docker/librekb
# 运行容器docker run -d\--restart unless-stopped \--name librekb \-p8954:80 \-v$(pwd)/www:/var/www/html \
php:8.1-apache
也可以用
docker-compose
安装,将下面的内容保存为
docker-compose.yml
文件
version:'3'services:php-apache-environment:image: php:8.1-apache
container_name: librekb
volumes:- ./www:/var/www/html/
ports:- 8954:80
然后执行下面的命令
# 新建文件夹 librekb 和 子目录mkdir-p /volume2/docker/librekb/www
# 进入 librekb 目录cd /volume2/docker/librekb
# 将 docker-compose.yml 放入当前目录# 一键启动docker-compose up -d
上传代码
因为还没上传代码,所以在浏览器中输入
http://群晖IP:8954
只能看到错误页
可以在本地解压后上传
代码上传完成后,应该下面👇这个样子的
直接刷新页面是会报错,因为还要修改设置文件
config.php
设置代码的修改
还需要重命名
config.example.php
文件为
config.php
,并修改其中数据库连接和邮件设置,邮件是用于密码重置的
下面👇是一个示例,其中
192.168.0.199
为群晖主机的
IP
,其他参数比较简单,就不一一说明
<?phprequire'vendor/phpmailer/src/Exception.php';require'vendor/phpmailer/src/PHPMailer.php';require'vendor/phpmailer/src/SMTP.php';classConfig{publicfunction__construct(){/* Database Configuration */$this->db_host='192.168.0.199:3307';$this->db_user='librekb';$this->db_pass='123456';$this->db_name='librekb';/* System Configuration */$this->systemURL='http://192.168.0.199:8954/';//example https://kb.example.com/ or https://example.com/kb/$this->updateCheck='yes';//change this to no if you wish to disable the update check. /* Email Configuration */$this->mailHost='smtp.88.com';//Set the SMTP server to send through$this->mailSMTPAuth=true;//Enable SMTP authentication$this->mailUsername='[email protected]';//SMTP username$this->mailPassword='<第三方邮件客户端密码>';//SMTP password$this->mailSMTPSecure='ssl';//Enable implicit TLS encryption$this->mailPort=465;//TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`$this->mailFrom='[email protected]';}}require_once('classes/Database.php');require_once('classes/Search.php');require_once('classes/Email.php');require_once('classes/Article.php');require_once('classes/Category.php');require_once('classes/Setting.php');require_once('classes/User.php');?>
安装驱动
虽然设置已完成,涉及到数据库的页面会显示错误
Connection failed: could not find driver
,因为默认
php:8.1-apache
没有带数据库
PDO MySQL
驱动
所以要执行👇下面的命令来安装,这里假设你容器的名称未做修改,就叫
librekb
# 安装 PDO MySQL 驱动dockerexec-it librekb /bin/bash docker-php-ext-install pdo_mysql
# 重新启动容器docker restart librekb
Bug 代码的修改
虽然老苏不是程序员,但是还是觉得
/admin/index.php
应该是有
bug
的,在创建分类时会报错
Warning: Undefined array key "slug" in /var/www/html/admin/index.php on line 161
Warning: Undefined array key "icon" in /var/www/html/admin/index.php** on line 163
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/admin/index.php:161) in /var/www/html/admin/index.php on line 175
查看了一下代码
而在页面中实际上并没有找到
slug
和
icon
,可能是下一版作者准备添加的内容吧
新建文章时同样也会报错
Warning: Undefined array key "slug" in /var/www/html/admin/index.php on line 377
Warning: Undefined array key "featured" in **/var/www/html/admin/index.php** on line 382
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/admin/index.php:377) in /var/www/html/admin/index.php on line 393
所以老苏修改了一下,其实也就是把报错的几行做了注释,可以在 https://github.com/wbsu2003/synology/blob/main/LibreKB/index.php 找到,替换掉
/admin
目录中的
index.php
即可
运行
上面这些都做完之后,终于可以打开
http://群晖IP:8954/install.php
进行安装了
后端
第一步要创建管理员
安装完成
打开页面
http://群晖IP:8954/admin
,或者直接点页面上的
admin
登录成功后的主界面
为了安全,需要删除
install.php
和
update.php
,不然页面上会有提示
点
Create Category
创建类别
完成之后
可以在该分类下
Create Article
完成之后
前端
回到前端的首页
http://群晖IP:8954
进入分类
查看文档
参考文档
michaelstaake/LibreKB: Knowledge Base Web App - Free, Open Source, Self Hosted, PHP/MySQL
地址:https://github.com/michaelstaake/LibreKB
LibreKB
地址:https://librekb.com/
Categories - docs.librekb.com
地址:https://docs.librekb.com/
版权归原作者 杨浦老苏 所有, 如有侵权,请联系我们删除。