功能类似于 Set up MediaWiki with PHP7.4, nginx and MySQLWiki.js – 自托管百科/文档管理系统

下文为无域名搭建方式

环境

  • Debian 11
    • LNMP
    • PHP-Composer

参考

步骤

准备 LNMP 环境

安装 Nginx、PHP 及其组件

apt install nginx php7.4 php7.4-fpm php7.4-curl php7.4-gd php7.4-xml php7.4-zip php7.4-mysql unzip

安装 PHP-Composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

mv composer.phar /usr/local/bin/composer

安装 MySQL

wget https://repo.mysql.com//mysql-apt-config_0.8.22-1_all.deb
dpkg -i mysql-apt-config_0.8.22-1_all.deb
apt update
apt install mysql-community-server

安装 PHP 后会自动安装 Apache,导致 Nginx 无法启动,所以先卸载 Apache

apt remove apache2

新建数据库

登录 MySQL

mysql -u root -p
# 输入密码

新建 BookStack 数据库及其用户

CREATE DATABASE BookStack;
CREATE USER 'bs'@'localhost' IDENTIFIED BY 'veryStrongPassword';
GRANT ALL PRIVILEGES ON BookStack.* TO 'bs'@'localhost';
exit;

新建 Nginx 配置文件

官方提供的 Nginx 配置文件会将 BookStack 托管在子目录,即 domain.com/bookstack

如果需要托管在根目录,对更改官方配置文件稍加更改即可

在 /etc/nginx/sites-available 下新建配置文件 bookstack,写入以下内容

server {
  listen 80;

  server_name [IP];

  root /var/www/BookStack/public;
  index index.php index.html;

  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }
}

新建软链接

ln -s /etc/nginx/sites-available/bookstack /etc/nginx/sites-enabled

获取并安装 BookStack

Continue reading “BookStack – 自托管文档管理/Wiki系统”

相比 Set up MediaWiki with PHP7.4, nginx and MySQL (MediaWiki),Wiki.js 使用 Node.js 实现,界面更加 Modern Design(没有 MediaWiki 那么复古),功能也很完善,重点是提供了 docker 镜像,搭建方式比 MediaWiki 简单得多

下文将展示如何在 Debian 11 下无域名搭建 Wiki.js

环境

  • Debian 11
    • docker

参考

步骤

安装前检查机器是否满足 Wiki.js 的要求

如果只是想体验 Wiki.js,直接使用 SQLite 作为数据库即可,直接一把梭

docker run -d -p [端口]:3000 --name wiki --restart unless-stopped -e "DB_TYPE=sqlite" requarks/wiki:2

以下步骤将使用 PostgreSQL(docker 镜像)

直接照抄官方教程

# 创建配置文件存储路径
mkdir -p /etc/wiki

# 生成数据库密钥
openssl rand -base64 32 > /etc/wiki/.db-secret

# 创建 docker 网络
docker network create wikinet

# 创建 docker 数据卷,存储数据库信息
docker volume create pgdata

# 创建容器
docker create --name=db -e POSTGRES_DB=wiki -e POSTGRES_USER=wiki -e POSTGRES_PASSWORD_FILE=/etc/wiki/.db-secret -v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro -v pgdata:/var/lib/postgresql/data --restart=unless-stopped -h db --network=wikinet postgres:11
docker create --name=wiki -e DB_TYPE=postgres -e DB_HOST=db -e DB_PORT=5432 -e DB_PASS_FILE=/etc/wiki/.db-secret -v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro -e DB_USER=wiki -e DB_NAME=wiki -e UPGRADE_COMPANION=1 --restart=unless-stopped -h wiki --network=wikinet -p 80:3000 -p 443:3443 requarks/wiki:2
docker create --name=wiki-update-companion -v /var/run/docker.sock:/var/run/docker.sock:ro --restart=unless-stopped -h wiki-update-companion --network=wikinet requarks/wiki-update-companion:latest

运行容器

docker start db
docker start wiki
docker start wiki-update-companion

访问 IP + 端口,创建新用户并设置站点 URL(没有域名可以直接填 IP 地址) Continue reading “Wiki.js – 自托管百科/文档管理系统”