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
相关产品推荐
相关产品推荐

