在Vagrant中为Laravel应用程序/存储文件夹设置适当的组所有权和权限?

3
我已经成功地建立了一个Vagrant环境,用于部署我的 Laravel 应用程序及其所有依赖项,并按要求配置了 Web 服务器。我使用的是 Ubuntu 操作系统。
我的问题在于 app/storage 文件夹。当我第一次加载网站时,它会提示权限错误。然后我运行了以下命令:
chmod -R a+rwx app/storage

...这使我成功加载了文件。当我刷新后,却得到了一个空白屏幕。

我再次运行了chmod,然后我又可以访问我的主页了。

我测试了我的路由,结果发现我的应用程序会随机崩溃。再次运行chmod解决了这个问题。

我得出结论,我的问题与组所有权有关,而不是权限本身,因为文件在app/storage文件夹中不断被创建,但它们没有被赋予适当的权限。

我该如何向app/storage文件夹添加写入权限,以便每次新文件被创建时都有我需要的权限?

2个回答

0

尝试在 Vagrantfile 中将 config.vm.synced_folder 设置为以下内容:

config.vm.synced_folder "/local/folder", "/vagrant/folder", :owner => 'vagrant', :group =>'www-data', :mount_options => ['dmode=775,fmode=775']

具体是指存储文件夹吗?还是我的整个存储文件夹?我对本地和虚拟文件夹有些困惑。你是不是指像这样的东西?"config.vm.synced_folder "src/app/storage", "/vagrant/app/storage", :owner => 'vagrant', :group =>'www-data', :mount_options => ['dmode=775,fmode=775']" ... 当我执行git pull命令时,我几乎可以从任何文件夹中执行。本地路径是否必须像你所示的那样是绝对路径? - Dynelight
我尝试过了,虽然我可以正确挂载文件夹,但我仍然有这个问题。 - Dynelight
我没有对这行代码进行任何更改,因此它在我的电脑上正常工作,也许我会找到更多实现这个功能的方法。 - msurguy

-4

你必须运行 chmod -R 755。

希望对你有帮助。 再见。


我尝试过这个。如果你仔细阅读我的问题,你会发现我本质上是一遍又一遍地运行这个命令。运行chmod是有效的,但一旦我开始浏览和调用路由,就会创建更多的文件。 - Dynelight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接