一、说明
BookStack 是基于 Mindoc 开发的,为运营而生。功能类似 gitbook 和看云,可用于文档项目管理,也可用于开源书籍的整理并提供用户阅读,支持批量创建文档、markdown 项目一键导入以及文章采集等强大便捷的功能。
二、安装依赖
依赖列表
nginx
php,php-fpm
mysql 或 mariadb
composer 或 composer.phar
git
三、创建目录/下载源码
mkdir -p /var/www
cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
四、安装项目依赖包
cd BookStack/
composer install //安装composer依赖库
或
PHP composer.phar install
这里要注意,如果是源码编译安装的php程序,请使用软链命令将php程序关联到/usr/bin/php,保证php成为全局命令,否则会报错
五、配置项目(数据库/邮箱等)
cp .env.example .env
vim .env
.... //配置mysql/mariadb数据库账号
DB_HOST=127.0.0.1
DB_DATABASE=XXXX
DB_USERNAME=XXXX
DB_PASSWORD=XXXXX
.... //配置邮件发送服务器,自己配置根据自己的邮箱服务信息修改信息
MAIL_DRIVER=smtp
MAIL_HOST=smtp.exmail.qq.com
MAIL_PORT=465
MAIL_FROM=XXXX@XXXX
MAIL_FROM_NAME=网书管理员
MAIL_USERNAME=XXXX@XXXX
MAIL_PASSWORD=XXXX
MAIL_ENCRYPTION=ssl
PS:MAIL_FROM 和 MAIL_USERNAME 必须一致
六、生成App指纹
php artisan key:generate
php artisan migrate
该步骤会填充.env配置文件的APP_KEY字段。
七、配置Nginx,启动项目
server {
listen 80;
server_name 0.0.0.0;
root /var/www/BookStack/public;
access_log /var/log/nginx/bookstack_access.log;
error_log /var/log/nginx/bookstack_error.log;
client_max_body_size 1G;
fastcgi_buffers 64 4K;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
deny all;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
}
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
access_log off;
}
}
nginx -s reload //重启nginx
八、使用BookStack
浏览器访问:http://127.0.0.1/
Bookstack的默认初始账号:admin@admin.com 密码:password
九、可能遇到的问题
问题1:进行第四步使用composer安装依赖的时候报错
解决:Bookstack代码里面使用了php全局命令,如果你的php命令不是全局的,请将php程序连接到全局:
ln -s /home/www/php/bin/php /usr/bin/php
问题2:邮件发送失败,报错无法找到服务
解决:邮箱服务器配置不正确,配置文件给的示例配置项不正确,少了 MAIL_FROM 和 MAIL_FROM_NAME 两个参数,正确配置见上面
Bookstack的项目日志路径为: /var/www/BookStack/storage/logs/*.log,方便查看报错信息,调了好久才找到这个路径,欲哭无泪