Laravel 5.5 file_put_contents权限问题

时间:2018-05-17 18:15:36

标签: php laravel nginx ubuntu-16.04

我有一个新的Laravel项目,安装了Passport和基本身份验证,当我尝试调用内置的/ api / register端点时出现此错误:

"message": "file_put_contents(/var/www/laravel/storage/framework/cache/data/d6/a4/d6a49710d53593f32f31157f5d15622f91a4bb2b): failed to open stream: No such file or directory",
  "exception": "ErrorException",
  "file": "/var/www/laravel/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php",
  "line": 122,
  "trace": [
    {
      "function": "handleError",
      "class": "Illuminate\\Foundation\\Bootstrap\\HandleExceptions",
      "type": "->"
    },
    {
      "file": "/var/www/laravel/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php",
      "line": 122,
      "function": "file_put_contents"
    },
    {
      "file": "/var/www/laravel/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php",
      "line": 65,
      "function": "put",
      "class": "Illuminate\\Filesystem\\Filesystem",
      "type": "->"
    },
    {
      "file": "/var/www/laravel/vendor/laravel/framework/src/Illuminate/Cache/Repository.php",
      "line": 195,
      "function": "put",
      "class": "Illuminate\\Cache\\FileStore",
      "type": "->"
    },

注意:我用" laravel"替换了项目文件夹名称,这只是堆栈跟踪的第一部分,让我知道你们是否想要整个事情。

我最初使用5.6创建了该项目,但后来又恢复到了5.5,因为我认为这可能导致了这个问题。 当我在安装了ubuntu 16.04的虚拟机上本地运行项目并且Web服务器是nginx时,会发生此错误。 我已经尝试过使用了 sudo chown -R www-data:www-data /path/to/project/root sudo chmod -R 775 /path/to/project/root 并且 sudo chmod -R o+w /path/to/project/root 但是没有一个工作,当我使用ls -l时,它仍然显示所有目录的所有者是root。 我也试过清除缓存 php artisan cache:clear 和各种其他缓存清除命令,并尝试手动删除缓存的内容,但我仍然得到相同的错误。在尝试修复此问题之后,我也遇到了同样的错误,但是引用了框架/视图而不是缓存。

我的理论是它正在尝试将缓存文件写入这些位置,但由于权限问题而无法执行此操作,因此当它尝试返回并访问它们时,它无法找到文件并将其抛出错误,但我可能是错的。

我能够使用注册表单成功注册用户,因此我认为这与Passport有关。

编辑:我决定使用我自己的自定义端点来注册用户,仍然使用passport来创建授权令牌,但我仍然收到类似的错误:

"message": "file_put_contents(/var/www/ink-smart/storage/framework/cache/data/5e/11/5e118760ad926aa34d016256f93a4bc340dcfb75): failed to open stream: Permission denied"

我尝试在虚拟机内的文件夹和Mac上的共享文件夹中使用chown和chmod,但没有任何工作。

0 个答案:

没有答案