当前位置: 首页 > news >正文

Web知识库应用程序LibreKB

在这里插入图片描述

什么是 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 \-p 8954: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-apachecontainer_name: librekbvolumes:- ./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,其他参数比较简单,就不一一说明

<?php
require 'vendor/phpmailer/src/Exception.php';
require 'vendor/phpmailer/src/PHPMailer.php';
require 'vendor/phpmailer/src/SMTP.php';
class Config {public function __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   = 'wbsu2003@88.com';                     //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 = 'wbsu2003@88.com';}
}
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 驱动
docker exec -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

查看了一下代码

而在页面中实际上并没有找到 slugicon,可能是下一版作者准备添加的内容吧

新建文章时同样也会报错

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.phpupdate.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/

http://www.lryc.cn/news/397755.html

相关文章:

  • 神经网络和安全结合:一种基于神经网络的智能攻击检测与防御系统;构建攻击行为预测模型
  • 音视频解封装demo:将FLV文件解封装(demux)得到文件中的H264数据和AAC数据(纯手工,不依赖第三方开源库)
  • 51单片机(STC8051U34K64)_RA8889_SPI4参考代码(v1.3)
  • 关于C# 开发Winfrom事后总结
  • Python学习笔记35:进阶篇(二十四)pygame的使用之音频文件播放
  • Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测
  • 常见的点云数据的获取方式
  • java 中钻石操作符 <> 的使用场景
  • C++ 定时器触发
  • 【Docker 入门】
  • 现在有什么副业可以让人快速上岸?可以试试这个行业上岸其实不难
  • 每天一个数据分析题(四百二十)- 一元线性回归模型
  • day11:01文件处理
  • 一场夏测杀出个“双冠王”,极越01成为纯电SUV标杆
  • 外科休克病人的护理
  • C-study(五).2
  • 使用Ultralytics YOLO进行模型验证
  • MICCAI 2023 List of Papers
  • 压缩文件的解析方式
  • rocket mq保证消息幂等性
  • Elasticsearch基本操作
  • 设计模式探索:责任链模式
  • OceanBase 配置项系统变量实现及应用详解(3):新增配置项的方法
  • PCI PTS 硬件安全模块(HSM)模块化安全要求 v5.0
  • javaweb中的请求与响应--基于postman工具的应用(附带postman的详细安装步骤)
  • StarRocks下载使用说明和基础操作
  • 桥接模式案例
  • Spring源码二十二:Bean实例化流程五
  • Unity3D中UI层级改变详解
  • centos安装数据库同步工具sqoop并导入数据,导出数据,添加定时任务