如何设置Docker中ThinkPHP日志权限及挂载目录权限修正?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1084个文字,预计阅读时间需要5分钟。
ThinkPHP容器内日志写入失败,根本原因并非代码问题,而是容器启动时挂载目录的UID/GID与应用进程用户不匹配,导致storage/logs不可写。
为什么 storage/logs 挂载后仍报“Permission denied”
常见现象是容器启动后访问接口直接 500,docker logs 显示类似 file_put_contents(/var/www/html/storage/logs/laravel.log): failed to open stream: Permission denied(ThinkPHP 同理,路径为 runtime/log/ 或 storage/log/)。这不是 SELinux 或 root 权限缺失,而是宿主机挂载目录的所有者 UID(比如 1001)与容器内运行 PHP-FPM 的用户 UID(比如 82,即 www-data)不一致,Linux 文件系统按 UID 判定权限。
本文共计1084个文字,预计阅读时间需要5分钟。
ThinkPHP容器内日志写入失败,根本原因并非代码问题,而是容器启动时挂载目录的UID/GID与应用进程用户不匹配,导致storage/logs不可写。
为什么 storage/logs 挂载后仍报“Permission denied”
常见现象是容器启动后访问接口直接 500,docker logs 显示类似 file_put_contents(/var/www/html/storage/logs/laravel.log): failed to open stream: Permission denied(ThinkPHP 同理,路径为 runtime/log/ 或 storage/log/)。这不是 SELinux 或 root 权限缺失,而是宿主机挂载目录的所有者 UID(比如 1001)与容器内运行 PHP-FPM 的用户 UID(比如 82,即 www-data)不一致,Linux 文件系统按 UID 判定权限。

