Debian12 での 2 つのナレッジ ベース ソフトウェア: BookStack と DokuWiKi のインストール

1. BookStackのインストール

1. LNMP システム環境のセットアップ

Debian12、php8.2-fpm、nginx

2. 本スタックのソースコードをダウンロードする

3. 公式 Web サイトの指示に従って手動インストールします。

注1:php用コマンドcomposerコマンドのインストール

 ダウンロード、名前変更、インストール

wget https://getcomposer.org/installer
mv installer installer.php
php installer.php --install-dir=/usr/bin --filename=composer

注 2: .env の設定では、データベースに加えて次の項目も設定します。それ以外の場合は、デフォルトの example.com に自動的にジャンプします。  

APP_URL=http://your-domain.com
APP_LANG=zh_CN

4. 必要な php 拡張機能

php -m

[PHP Modules]
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring 
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
random
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

mbstring は特に重要であることに注意してください。そうしないと、参照、リンク、表示などに問題が発生します。

BoookStack の使い方は比較的シンプルで、コンテンツの構成形式は本棚→ブック→ページ→章となっており、左から直感的に追加できます。

5. 左側に表示される最近のアクティビティ情報をブロックします

管理者ユーザーでログインし、パーソナライズページ下部の「カスタムHTMLヘッダー内容」項目に以下のスタイル設定内容を追加します。

## 绝杀版:屏蔽掉游客浏览时的左、右两边的侧边栏
<style>
  .tri-layout-left { visibility: hidden; }
  .tri-layout-right { visibility: hidden; }
</style>
<script>
	window.addEventListener('DOMContentLoaded', (event) => {
		const loginShowing = document.querySelector('a[href$="/login"]') == null;
		const leftPanel = document.querySelector("div.tri-layout-left");
		const rightPanel = document.querySelector("div.tri-layout-right");
		if (loginShowing) {
			leftPanel.style.visibility = 'visible';
			rightPanel.style.visibility = 'visible';
		}
	});
</script>

## 如果仅仅是隐藏左侧活动记录信息
<script>
    window.addEventListener('DOMContentLoaded', (event) => {
        const loginShowing = document.querySelector('a[href$="/login"]') !== null;
        const leftActivity = document.querySelector("#recent-activity");
        if (loginShowing && leftActivity) {
            leftActivity.style.visibility = 'hidden';
        }
    });
</script>

## 如果要彻底清除左侧活动记录信息
<script>
	window.addEventListener('DOMContentLoaded', (event) => {
	    const loginShowing = document.querySelector('a[href$="/login"]') !== null;
		const leftActivity = document.getElementById("recent-activity");
	    if (loginShowing && leftActivity) {
	    	leftActivity.innerHTML = "";
	    }
	});
</script>

## 屏蔽右侧的侧边栏
<script>
	window.addEventListener('DOMContentLoaded', (event) => {
	    const loginShowing = document.querySelector('a[href$="/login"]') !== null;
	    const rightPanel = document.querySelector("div.tri-layout-right");
	    if (loginShowing && rightPanel) {
	    	rightPanel.style.visibility = 'hidden';
	    }
	});
</script>

 

2. Dokuwiki のインストール

Dokuwiki はインストールが簡単ですが、コンテンツの整理と編集が面倒であるという特徴があります。

1. インストールは公式の手順に従って行うことができ、php のサポートも必要ですが、データベースは必要ありません

2. 新しいプロジェクトとページを作成します

dokuwiki には、新しいページやプロジェクトなどを作成するための直感的なボタンやメニューなどがありません。ブラウザで URL を直接変更して「そのようなページはありません」と表示させてから、新しいページを作成する必要があります。

doku.php?id=item: サブアイテム: ページ名という形式を変更します。

 3. ページ、アイテムを削除する

3.1 Web ログイン後の UI インターフェイスで、ページのコンテンツを完全に削除し、保存してページを削除します。各プロジェクトのすべてのページを削除すると、プロジェクトが消えます。

3.2 ssh を使用してコマンドラインモードでルートディレクトリに入り、削除します

dokuwiki はデータベースを使用しないため、そのコンテンツは ~/dokuwiki/data/ ディレクトリに保存されます。また、プロジェクトやページの内容はdata/pages/に配置されます。rm で直接物理的に削除できます

 3.3 フォルダ内の中国語が正常に表示できない問題

上の図では、いくつかの中国語のプロジェクトとページがあり、それらはすべて %E* という名前になっていることがわかります。コードを強制的に指定するには、構成ファイルを変更する必要があります。

vim ~/dokuwiki/conf/local.php
## 在最下方增加:
$conf['fnencode'] = 'utf-8'; 

 4. WYSIWYG編集プラグイン

管理者アカウントで管理し、拡張機能マネージャーを入力して、 prosemirror  プラグインを検索し 、インストールして有効にします。有効にした後、ページ編集に入ると、トグルボタンが表示されます。

5. ACL 設定を使用して、各プロジェクトとページのアクセス権を設定します。

1. まず、コンテンツのどの部分の権限を設定するかを選択します; 2. 権限を付与するユーザーまたはグループを選択します; 3. クリックして選択して確認します; 4. どの権限を選択します (左から右への包括的な関係、削除権限が最大の権限); 5. 権限を設定した後、[保存] をクリックします; 6. 右下隅の [更新] をクリックします。これで設定は完了です。

 説明: @ALL は読み取りに設定でき、編集に設定すると dokuwiki にログインせずに編集できます。@user に編集権限を設定します。特定のユーザーを指定して、作成、アップロード、削除などの権限をオンデマンドで付与します。

6. セキュリティ設定

公式の指示に従って調整します:     セキュリティ設定: https://www.dokuwiki.org/zh:security

おすすめ

転載: blog.csdn.net/lggirls/article/details/130605192