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 的原因

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 6
OMGZui

确保 storage 与 php-fpm 在同一环境

4年前 评论
qiuyuhome

可能是权限的原因, 执行 php artisan storage:link 的用户 和 php-fpm 的用户是一个么?

4年前 评论
akon (楼主) 4年前
hiword 4年前

最好把你的 Docker 相关配置也附上,这样可以快速定位问题。不然只能完全靠猜……还有就是访问文件失败,是 404 还是 403?

4年前 评论

宿主机中执行:setfacl -d -m u:www-data:rw <your-dir> ,即默认给www-data对指定的文件夹有读写权限。

4年前 评论
lochpure

访问失败是报的什么错误?如果是404就是link链接的问题,位置不太对,如果是别的,就先检查一下权限问题

4年前 评论

请问现在解决了嘛?我也遇到了相同的问题,访问404

4年前 评论
akon (楼主) 4年前
oneSmile (作者) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!