搭建BookStack-Wiki平台
BookStack 是一个简单、自托管的、易于使用的免费开源的平台,可用于存储并整理信息。BookStack的界面简单直观,支持WYSIWYG编辑器,将内容划分为书籍、章节和页面三个简单的组别。支持全文搜索内容,跨书籍、章节和页面的链接。
实用链接
- 官网:https://www.bookstackapp.com/
- 文档:https://www.bookstackapp.com/docs/
- GitHub:https://github.com/BookStackApp/BookStack
搭建
环境需求
PHP (>= 8.0.2)
- 插件: OpenSSL, PDO, MBstring, iconv, Tokenizer, GD, MySQL, SimpleXML & DOM.
MySQL (>= 5.7 or MariaDB >= 10.2)
- 用于存储BookStack的内容
Git Version Control
- 用于程序的升级
Composer (>= v2.0)
- 用于管理和安装PHP的依赖
- 一个 PHP 兼容的 Web 服务器, 比如Nginx
本教程将演示使用 PHP + MySQL + Nginx 手动安装。官方同时提供一键安装脚本和 Docker 搭建,如有需要此类安装方式的朋友可以查阅官方文档。
建立数据库
登录数据库
mysql -uroot -p
创建数据库
CREATE DATABASE bookstack CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
安装BookStack
获取程序源码
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
安装 composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
设置全局访问 composer
sudo mv composer.phar /usr/local/bin/composer
进入文件夹并安装依赖
cd BookStack
composer install --no-dev
修改配置文件
cp .env.example .env
vim .env
这里简单介绍一下一些常用参数,具体可配置参数请参考官方文档:
APP_KEY
可以使用下面命令生成php artisan key:generate
APP_URL
请输入站点的域名APP_TIMEZONE
请输入站点所用的时区,默认为UTC国际协调时间DB_HOST
,DB_DATABASE
,DB_USERNAME
,DB_PASSWORD
为数据库相关信息。若数据库在本地,DB_HOST
应为localhost或127.0.0.1MAIL_*
相关参数可配置邮件通知。(例如注册邮箱验证,评论回复推送等功能)
注:一些用不到的参数可注释不填
更新数据库:
php artisan migrate
配置 Web 服务
你可以自由选择任何服务端,但是PHP必须开启跨目录功能,否则会报错。(如果您用的是lnmp一键安装包,可以参考这个教程。)
这里用Nginx配置文件为例:
server
{
listen 80;
listen 443 ssl;
server_name bookstack.example.com;
ssl_certificate ../your_ssl_cert.pem;
ssl_certificate_key ../your_ssl_key.key;
client_max_body_size 10M;
root /your/bookstack/home/folder/public;
index index.php index.html;
include enable-php.conf;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
access_log /path/to/your/logs.log;
}
评论已关闭