У меня есть новый проект 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, но ничего не работает.