Laravel 5.5 file_put_contents проблема с разрешениями - PullRequest
0 голосов
/ 17 мая 2018

У меня есть новый проект 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, а веб-сервер - 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 и множество других команд очистки кэша, а также пытались просто удалить содержимое кэша вручную, но я все еще получаю ту же ошибку. После некоторых попыток исправить это я также получаю ту же ошибку, но ссылаюсь на framework / views вместо кеша.

Моя теория заключается в том, что он пытается записать файлы кэша в эти места, но не может этого сделать из-за проблем с разрешениями, поэтому, когда он пытается вернуться и получить к ним доступ, он не может найти файлы и выбрасывает это ошибка, но я могу ошибаться.

Я могу успешно зарегистрировать пользователя с помощью формы регистрации, поэтому я думаю, что это как-то связано с паспортом.

Редактировать: я решил использовать свою собственную конечную точку для регистрации пользователя вместо этого, все еще используя паспорт для создания токена авторизации, но я все еще получаю похожую ошибку, которая выглядит так:

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

Я пытался использовать chown и chmod для обеих папок в виртуальной коробке и в общей папке на моем Mac, но ничего не работает.

...