You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bookstack安装遇Permission Denied错误,空白页问题求助

Bookstack 首页空白与权限拒绝问题修复方案

部署Bookstack到Alt Server 10.1(类Debian系统)时,访问首页显示空白页,查看/var/log/nginx/error.log发现核心错误:

2023/05/01 02:10:16 [error] 8093#8093: *7 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ErrorException: file_put_contents(/var/www/bookstack/storage/framework/views/444e2e0a8c776f8bed9002e3000a037539df392e.php): Failed to open stream: Permission denied in /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:190
Stack trace:
#0 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(270): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'file_put_conten...', '/var/www/bookst...', 190)
#1 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->Illuminate\Foundation\Bootstrap\{closure}(2, 'file_put_conten...', '/var/www/bookst...', 190)
#2 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(190): file_put_contents('/var/www/bookst...', '<?php $__env->s...', 0)
#3 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php(185): Illuminate\Filesystem\Filesystem->put('/var/www/bo...; PHP message: PHP Fatal error:  Uncaught ErrorException: file_put_contents(/var/www/bookstack/storage/framework/views/444e2e0a8c776f8bed9002e3000a037539df392e.php): Failed to open stream: Permission denied in /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:190
Stack trace:
#0 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(270): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'file_put_conten...', '/var/www/bookst...', 190)
#1 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->Illuminate\Foundation\Bootstrap\{closure}(2, 'file_put_conten...', '/var/www/bookst...', 190)

错误指向storage/framework/views目录的写入权限问题,当前vendor目录权限示例如下:

drwxr-xr-x  4 _nginx _nginx  4096 апр 24 22:14 aws
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 bacon
drwxr-xr-x  4 _nginx _nginx  4096 апр 24 21:44 barryvdh
drwxr-xr-x  2 _nginx _nginx  4096 апр 24 22:54 bin
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 22:14 brick
drwxr-xr-x  2 _nginx _nginx 20480 апр 24 22:50 composer
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 dasprid
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 dflydev
drwxr-xr-x  8 _nginx _nginx  4096 апр 24 22:54 doctrine
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 dompdf
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 dragonmantank
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 22:14 egulias
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 fruitcake
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 graham-campbell
drwxr-xr-x  6 _nginx _nginx  4096 апр 24 22:14 guzzlehttp
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 intervention
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 knplabs
drwxr-xr-x  6 _nginx _nginx  4096 апр 24 22:14 laravel
drwxr-xr-x 10 _nginx _nginx  4096 апр 24 22:14 league
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 masterminds
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 monolog
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 mtdowling
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 nesbot
drwxr-xr-x  4 _nginx _nginx  4096 апр 24 21:44 nette
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 nikic
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 22:54 nunomaduro
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 onelogin
drwxr-xr-x  4 _nginx _nginx  4096 апр 24 21:44 paragonie
drwxr-xr-x  4 _nginx _nginx  4096 апр 24 21:44 phenx
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 phpoption
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 phpseclib
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 pragmarx
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 predis
drwxr-xr-x 10 _nginx _nginx  4096 апр 24 22:14 psr
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 22:14 psy
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 ralouphie
drwxr-xr-x  4 _nginx _nginx  4096 апр 24 22:14 ramsey
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 robrichards
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 sabberworm
drwxr-xr-x  9 _nginx _nginx  4096 апр 24 21:44 socialiteproviders
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 22:54 ssddanbrown
drwxr-xr-x 29 _nginx _nginx  4096 апр 24 22:54 symfony
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 tijsverkoyen
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 vlucas
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 voku
drwxr-xr-x  3 _nginx _nginx  4096 апр 24 21:44 webmozart

已尝试php artisan cache:clear及常规权限修复方法,均未解决问题,以下是针对性修复步骤:

修复步骤

  • 修复storage目录权限链
    错误核心是/var/www/bookstack/storage/framework/views/无法写入,执行以下命令递归设置所有者和权限:

    chown -R _nginx:_nginx /var/www/bookstack/storage/
    chmod -R 755 /var/www/bookstack/storage/
    chmod -R 775 /var/www/bookstack/storage/framework/views/
    

    注:775权限确保web服务器用户(_nginx)具备写入权限,避免使用不安全的777权限。

  • 验证PHP-FPM运行用户
    确认PHP-FPM运行用户与nginx一致,查看配置文件:

    grep -E 'user|group' /etc/php/[你的PHP版本]/fpm/pool.d/www.conf
    

    若输出用户不是_nginx,修改配置后重启PHP-FPM:

    systemctl restart php[你的PHP版本]-fpm
    
  • 检查SELinux限制
    若系统启用SELinux,临时关闭验证:

    setenforce 0
    

    若问题解决,为目录设置正确的SELinux上下文:

    chcon -R -t httpd_sys_rw_content_t /var/www/bookstack/storage/
    chcon -R -t httpd_sys_rw_content_t /var/www/bookstack/bootstrap/cache/
    
  • 清理视图缓存
    手动删除旧缓存文件并重新生成:

    rm -rf /var/www/bookstack/storage/framework/views/*
    php artisan view:clear
    

内容的提问来源于stack exchange,提问作者Ronin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 03:27:02