docker 部署 Laravel,无法访问 storage 目录中的 文件
环境
基于 docker 构建了 PHP7.2 容器、nginx容器,在容器中部署了 laravel 应用
问题
图片资源都存储到 laravel 应用的 storage/app/public
目录下,同时在 PHP 容器的 laravel 应用根目录下执行了 php artisan storage:link
命令,然后访问文件 http://域名/storage/a.pdf
失败。
是不是因为在 容器里面执行 php artisan storage:link
的原因
确保 storage 与 php-fpm 在同一环境
可能是权限的原因, 执行
php artisan storage:link
的用户 和php-fpm
的用户是一个么?最好把你的 Docker 相关配置也附上,这样可以快速定位问题。不然只能完全靠猜……还有就是访问文件失败,是 404 还是 403?
宿主机中执行:
setfacl -d -m u:www-data:rw <your-dir>
,即默认给www-data对指定的文件夹有读写权限。访问失败是报的什么错误?如果是404就是link链接的问题,位置不太对,如果是别的,就先检查一下权限问题
请问现在解决了嘛?我也遇到了相同的问题,访问404