laravel - 在 digitalocean 权限错误上部署 laravel sail

标签 laravel docker ubuntu laravel-sail

我在本地 (mac os) 安装了 Laravel Sail,它运行良好。

当我尝试在 DigitalOcean 中部署它时,出现无限权限错误。

因此,我通过 DigitalCcean 创建了一个安装了 docker 的新 droplet

(市场应用程序 -> docker -> [版本 19.03.12,操作系统 Ubuntu 20.04]),

这是我做的

1 - 在终端 ~ 目录中,我运行了 curl -s https://laravel.build/example-app | bash,它按预期安装了所有内容。

2 - 我创建了一个别名 alias sail='./vendor/bin/sail'

3 - 完成后,我 cd 进入“example-app”目录并运行命令 sail up -d,它工作正常,所有进程和服务都已启动并运行。

4 - 转到浏览器并尝试通过 IP 打开网站,我遇到了这个错误流或文件“/var/www/html/storage/logs/laravel.log”可能无法以附加模式打开:无法打开流:权限被拒绝

我尝试运行 sail composer update,但出现此错误 file_put_contents(/var/www/html/vendor/composer/installed.json): Failed to open stream : 权限被拒绝

让它工作的唯一方法是运行 chmod -R 777 example-app 我知道这是不对的,所以我需要帮助让它以最佳和正确的方式工作

最佳答案

正确的方法是让代码归正确的用户和组所有。您可以将用户和组作为 WWWUSER 放在您的 .env 中和 WWWGROUP分别。 然后如果需要,使用 chown在您的容器中赋予该用户所有权。例如

chown -R <wwwuser>:<wwwgroup> /var/www/html

https://github.com/laravel/sail/blob/1.x/stubs/docker-compose.stub#L21


请注意,sail 不适用于生产

关于laravel - 在 digitalocean 权限错误上部署 laravel sail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66440728/

相关文章:

JavaScript 变量在 Laravel 中不起作用

laravel - 在 elasticsearch-laravel 中更新记录;

laravel - 在 laravel Blade View 中显示 Blade 代码片段

php - 如何根据第一个条件结果对 Laravel 查询构建器进行排序

docker - 如何在docker-compose入口点中转义'

docker - 如何在Kubernetes中进行多容器部署

docker - 摆脱Docker的以下错误:GET/v1.38/nodes的处理程序返回错误:该节点不是群集管理器

c++ - 编译失败,c++程序以静态变量为私有(private)成员变量

python - libpython2.7.a 缺少许多引用

c - 如何在 gstreamer 中为 udpsrc 元素创建上限?