【问题标题】:Unable to create lockable file - Laravel 8 & PHP 8无法创建可锁定文件 - Laravel 8 和 PHP 8
【发布时间】:2022-04-26 01:09:14
【问题描述】:

我被困在一个 Laravel 项目中,我已经使用 Laravel 很多年了,从来没有发生过这种情况。

我正在使用 Vagrant(一如既往)并且只在 PHP 8 中发生这种情况,在其他项目中使用 php 7.X 不会发生。

USER 和 GROUP 权限一如既往。我跑chmod -R 777 storage 和引导/缓存很多次。 我跑了所有的缓存:清除。

我不知道为什么会这样。

有人对 Laravel 和 PHP 8 有疑问吗?

谢谢!

【问题讨论】:

  • 您尝试过什么来解决问题?如果您尝试手动创建该文件,它可以工作吗?另外,最后的工作状态和损坏的状态之间究竟发生了什么变化?
  • @NicoHaase 该文件存在,如果我运行 cache:clear 它会再次与另一个文件一起发生。这只发生在 PHP8 中。 (这是一个新项目,但是我有另一个项目用php8,也有存储权限的问题)
  • @RizkyArlin no mate... 我使用数据库和 Redis 而不是文件系统解决了一些会话和缓存问题,但存储仍然失败。我想可能是我的宅基地机器,因为我没有看到更多人有同样的问题。我将尝试 Laravel 代客,看看它是否有效
  • 我在 laravel 8 和 php 7.4 的生产环境中遇到了同样的问题。它是零星的,实际上总是由上面的 chmod 临时修复,但后来由于 laravel 创建了一个由 root 拥有的新缓存目录而再次出现。这显然是一个错误。有人有永久修复吗?
  • @Daryl,您是否尝试过创建由 root 拥有的目录?有些东西在那里以 root 身份运行,一个 cronjob 或具有 SSH 访问权限的人在那里运行服务任务。 PHP 不会随机创建您无法通过正常方式创建的目录。这个问题缺少minimal reproducible example。缺少太多的拼图。

标签: php laravel


【解决方案1】:

请使用以下命令:

  1. 清除项目的缓存
cd /home/vagrant/code/project_folder_name
sudo php artisan cache:clear
  1. 为您的文件夹授予适当的权限
sudo chmod 775 /home/vagrant/code/project_folder_name
sudo chown -R vagrant:vagrant /home/vagrant/code/project_folder_name

希望它能解决您的问题。

【讨论】:

    【解决方案2】:

    您能否尝试使用给定的权限,因为它也应该在 web 服务器组 www-data 级别上?

    另外,添加一个链接供您参考。

    https://linuxhint.com/how-to-set-up-file-permissions-for-laravel/

    sudo chgrp -R www-data storage bootstrap/cache
    sudo chmod -R ug+rwx storage bootstrap/cache
    

    【讨论】:

      【解决方案3】:

      我通过向 apache 用户提供所有者权限来解决它:

      chown -R apache:apache storage/framework
      

      【讨论】:

        【解决方案4】:

        我刚跑 php工匠缓存:清除 它起作用了

        【讨论】:

        • 请不要重复已有的答案
        猜你喜欢
        • 2021-08-08
        • 1970-01-01
        • 2021-05-02
        • 2021-11-27
        • 2011-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-20
        相关资源
        最近更新 更多