5 回答
TA贡献1775条经验 获得超8个赞
你用什么作为网络服务器?nginx 还是阿帕奇?
如果您使用的是 nginx,则需要更改存储文件夹的组,如下所示。
chown -R vagrant:www-data storage
如果您使用的是apache,则需要更改存储文件夹的组,如下所示。
chown -R vagrant:apache storage
或者请这样做。(不推荐)
chmod -R 777 storage
TA贡献1784条经验 获得超8个赞
我通常对权限和所有权所做的事情是这样的:
sudo chown -R ubuntu:www-data /var/www/project sudo chmod -R ug+rwx storage bootstrap/cache .git sudo find . -type f -exec chmod 664 {} \; sudo find . -type d -exec chmod 775 {} \;
话虽如此,听起来您的网络服务器在创建日志文件时遇到了问题。
要对此进行测试:
有可靠的重现步骤(所以你会得到错误)
做
sudo chown -R www-data:www-data /home/vagrant/code/abc-backend/storage
。重新测试
如果这有效,您有一些选择:
就这样吧,工作完成了。请注意,将来可能会出现如下所示的其他情况。
调查进一步的问题:如果您决定实际上,
sudo chown -R www-data:www-data /home/vagrant/code/abc-backend
您可能会在某个时候遇到访问问题,其中作为一个用户(比方说vagrant
)运行命令会生成应该可由另一个用户(比方说www-data
)访问的文件。这些可以是:git pull
、composer install
、 cron 作业,也可能是其他作业。但这更有可能发生在协作环境中,而不是宅基地中。
TA贡献1860条经验 获得超8个赞
storage
和目录中的目录bootstrap/cache
应该可由您的 Web 服务器写入,否则 Laravel 将无法运行。
你有没有尝试过:
chmod -R o+w /home/vagrant/code/abc-backend/storage
?
如果还是不行,您可能需要检查 /home/vagrant/code 的内容,看看ls -al
谁拥有这些文件,并使用chown
它们将其修改为预期的 Web 用户。
TA贡献1835条经验 获得超7个赞
我认为问题是在cache:clear之后权限不会保留到子文件夹(因为该命令是由vagrant用户运行的,而不是apache)。缓存使用了很多子文件夹,它们似乎由 vagrant 所有(包括用户和组),因此 apache(和 php)无法在那里写入。
反而:
chown -R vagrant:www-data /home/vagrant/code/abc-backend/storage chmod -R g+w /home/vagrant/code/abc-backend/storage
尝试这个:
chown -R vagrant:www-data /home/vagrant/code/abc-backend/storage chmod -R g+sw /home/vagrant/code/abc-backend/storage
将+s
设置粘滞位,以便在该路径下创建的任何新文件夹或文件将自动归同一组(在本例中为 www-data)所有。
TA贡献1780条经验 获得超5个赞
你能尝试一下吗
folders: - map: ~/Sites to: /home/vagrant/code options: mount_options: ['dmode=777','fmode=777']
- 5 回答
- 0 关注
- 202 浏览
添加回答
举报