CentOS 7 安装 BookStack

本文详细介绍了在CentOS 7上安装BookStack的过程,重点是确保安装PHP版本不低于7.2。首先通过配置源并安装epel-release和webtatic-release来准备环境。接着,使用yum命令安装一系列php72w组件以创建完整的PHP环境。验证PHP版本后,继续配置php-fpm和Nginx。最后,启用相关服务并重启系统,或者对于基于Apache的安装,修改配置文件并赋予BookStack目录适当的权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重点在于安装php,他需要版本>=7.2

1.配置源

  1. yum install epel-release

  2. rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

2.安装php环境

yum -y install php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w php72w-bcmath php72w-dba php72w-enchant php72w-imap php72w-interbasephp72w-intl php72w-ldap  php72w-mcrypt php72w-odbc php72w-pdo_dblib php72w-pear php72w-pecl-apcu php72w-pecl-imagick php72w-pecl-xdebug php72w-pgsql php72w-phpdbg php72w-process php72w-pspell php72w-recode php72w-snmp php72w-soap php72w-tidy php72w-xmlrpc php72w-pecl-igbinary php72w-intl php72w-memcached php72w-pecl-mongodb php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-pear php72w-devel  

3.php-v查看版本,出现7.2即可

然后安装其他部分

安装数据库:
systemctl restart mariadb.service   # Start MySQL service
mysql_secure_installation   # Set root password
mysql -u root -p   # Enter root password you just set
CREATE DATABASE IF NOT EXISTS bookstackdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON bookstackdb.* TO 'bookstackuser'@'localhost' IDENTIFIED BY 'bookstackpass' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit

设置php-fpm

vi /etc/php-fpm.d/www.conf   # Set critcal settings
----
listen = /var/run/php-fpm.sock
listen.owner = nginx ; SOCKS permission
listen.group = nginx ; SOCKS permission
listen.mode = 0660 ; SOCKS permission
user = nginx ; PHP-FPM running user
group = nginx ; PHP-FPM running group
php_value[session.save_path]    = /var/www/sessions
---

设置nginx

建议直接写到nginx.conf里

mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig   # Backup original file
vi /etc/nginx/nginx.conf   # Nginx config
---
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;
}
---

vi /etc/nginx/conf.d/bookstack.conf   # Server config
---
server {
  listen 80;
  server_name localhost;
  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 unix:/var/run/php-fpm.sock;
  }

  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    access_log off;
  }
}
---
设置部署bookstack
cd /usr/local/bin   # Change dirs to where we want composer installed to
curl -sS https://getcomposer.org/installer | php   # Install composer
mv composer.phar composer   # Rename composer

cd /var/www   # Change dirs to where we want BookStack installed to   
mkdir /var/www/sessions   # Dir for php sessions
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch   # Clone the latest from the release branch
cd BookStack && composer install   # Change dirs into the BookStack dir, and let composer do it's thing

cp .env.example .env   # Make a copy of the example config
vi .env   # Update the new config with database, and other settings
---
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstackuser
DB_PASSWORD=bookstackpass
---
其他设置都默认就完事了
php artisan key:generate --force   # Generate and update APP_KEY in .env
chown -R nginx:nginx /var/www/{BookStack,sessions}   # Change ownership to the webserver user
php artisan migrate --force   # Generate database tables and other settings

现在配置差不多了

打开服务,重启后直接输ip进

systemctl enable nginx.service && systemctl enable mariadb.service && systemctl enable php-fpm.service

systemctl reboot

 

 

 

基于Apache的安装方法:

前边都一样,除了nginx那块不需要配置,转变成下边的方法

Apache配置文件内如下修改

重启Apache

进到/var/www内使用

chmod -R 777 BookStack

chmod -R 777 sessions

然后开tmd网页

进ip:8080就完事了

 

 

BookStack是一个基于MinDoc,使用Beego开发的在线文档管理系统,功能类似Gitbook和看云。 在开发的过程中,增加和移除了一些东西,目前已经不兼容MinDoc了(毕竟数据表结构、字段、索引都有了一些不同),同时只支持markdown编辑器。BookStack在线文档管理系统功能与亮点:1、书籍分类(V1.2 +) 用户就像你的老板,他不知道自己需要什么,但是他知道自己不需要什么... 2、用户主页(V1.2 +) 在用户主页,展示用户分享的书籍、粉丝、关注和手册,增加用户间的互动 3、一键导入markdown项目 这个功能,相信是很多人的最爱了。目前这个功能仅对管理员开放。 经实测,目前已完美支持各种姿势写作的markdown项目的文档导入,能很好地处理文档间的链接以及文档中的图片链接 4、一键拉取markdown项目 看到GitHub、Gitee等有很多开源文档的项目,但是一个一个去拷贝粘贴里面的markdown内容不现实。于是,做了这个一键拉取的功能。 目前只有管理员才有权限拉取,并没有对普通用户开放。要体验这个功能,请用管理员账号登录演示站点体验。 用法很简单,比如我们拉取beego的文档项目,在创建项目后,直接点击"拉取项目",粘贴如" https://github.com/beego/beedoc/archive/master.zip ",然后就会自动帮你拉取上面的所有markdown文档并录入数据库,同时图片也会自动帮你更新到OSS。 拉取项目 经实测,目前已完美支持各种姿势写作的markdown项目的拉取,能很好地处理文档间的链接以及文档中的图片链接 目前已支持Git Clone导入项目 5、生成和导出PDF、epub、mobi等离线文档 这个需要安装和配置calibre。 我将calibre的使用专门封装成了一个工具,并编译成了二进制,源码、程序和使用说地址:https://github.com/TruthHun/converter 在BookStack中,已经引入这个包了。使用的时候,点击"生成下载文档"即可 6、文档排序和批量创建文档 很多时候,我们在写作文档项目的时候,会习惯地先把文档项目的章节目录结构创建出来,然后再慢慢写内容。 但是,文档项目中的文档少的时候,一个个去创建倒没什么,但是文档数量多了之后,简直就是虐待自己,排序的时候还要一个一个去拖拽进行排序,很麻烦。现在,这个问题已经解决了。 7、文档间的跳转你在一个文档项目中会有很多文档,其中一个文档的文档标识叫readme.md,另外一个文档的文档标识叫quickstart.md,两个文档间如何跳转呢? 如果你知道站点的路由规则,倒是可以轻松链过去,但是,每次都要这样写,真的很麻烦。自己也经常写文档,简直受够了,然后想到了一个办法。如下: 我从readme.md跳转到quickstart.md,在readme.md中的内容这样写: [快速开始]($quickstart.md) 如果跳转到quickstart.md的某个锚点呢?那就像下面这样写: [快速开始-步骤三]($quickstart.md#step3) 好了,在发布文档的时候,文档就会根据路由规则以及你的文档标识去生成链接了(由于是后端去处理,所以在编辑文档的时候,前端展示的预览内容,暂时是无法跳转的)。 那么,问题就来了,我文档项目里面的文档越来越多,我怎么知道我要链接的那个文档的文档标识呢?不用担心,在markdown编辑器的左侧,括号里面的红色文字显示的就是你的文档标识。 8、采集功能 看到一篇很好的文章,但是文章里面有代码段、有图片,手工复制过来,格式全乱了,所以,相信采集功能,会是你需要的。采集功能,在markdown编辑器的功能栏上面,对,就是那个瓢虫图标,就是那个Bug,因为我找不到蜘蛛的图标... 9、SEO 后台管理,个性化定制你的SEO关键字;并且在SEO管理这里,可以更新站点sitemap(暂时没做程序定时自动更新sitemap) 10、版本控制 MinDoc之前本身就有版本控制的,但是版本控制的文档内容全都存在数据库中,如果修改频繁而导致修改历史过多的话,数据库可能会被撑爆。当时没有好的解决办法,所以将该功能移除了。 目前加上该功能,是因为这个功能呼声很高,所以加回来了。但是版本控制的内容不再存储到数据库中,而是以文件的形式存储到本地或者是云存储上。 功能在管理后台->配置管理中进行开启 11、更美观、简洁的页面布局和更为完善的移动端兼容 这是个看脸的时代...升级日志管理后台,恢复和优化附件管理功能,以便管理音频和视频 内容编辑器支持上传音频和视频(如果开启了阿里云OSS云存储,则将音视
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值