Laravel 8 возвращает ошибку flock при запросе api

#php #laravel #api

#php #laravel #API

Вопрос:

Я очень застрял с ошибкой, которую я не могу понять, ответ Laravel 8 всегда "flock() expects parameter 1 to be resource, bool given" на всех маршрутах api. Я сделал простой маршрут для отладки этой проблемы, но я не имею ни малейшего представления, в чем проблема, поэтому, если кто-нибудь сможет мне помочь по этому поводу, я буду рад. Это мой код:

Маршруты API

 Route::post('/createUser',[UserController::class, 'store'])->name('createUser');
Route::get('/getUser',[UserController::class, 'index'])->name('getUser');

Route::middleware(['auth:sanctum'])->group(function () {
    Route::prefix('V1')->group(function () {
        
        // Rutas para los VDP
        Route::get('/conf',[ReaderController::class, 'readerInitialConf'])->name('readerInitialConf');
        Route::post('/createReader',[ReaderController::class, 'store'])->name('createReader');


    });
}); 
 

Код контроллера:

 public function index()
    {
        return User::all();
    }
 

И это Postman:

введите описание изображения здесь

Примечание: Это приложение настроено, я не знаю, может ли docker вызвать эту проблему, но я думаю, что нет, потому что я всегда использую его и никогда не сталкиваюсь с этой проблемой.

Если кто-нибудь может помочь, я буду очень благодарен.

Заранее спасибо! Рауль

Комментарии:

1. Мне кажется, что это проблема с правами доступа к файлам

2. Убедитесь, что у вас правильно настроены права доступа к папке в контейнере docker: laravel.com/docs/8.x#directory-permissions

3. Я подумал о правах доступа к папке и запустил chmod -R 777 в обеих папках… но я запустил его снова и заметил, что некоторые файлы в хранилище / кэше по-прежнему содержат 755, поэтому api теперь отвечает нормально… Большое спасибо вам обоим!!!

4. Нет проблем! Рад, что смог помочь

Ответ №1:

Проверить разрешения storage/framework/cache/data только для определения 777 storage/framework/cache будет недостаточно, вы также должны предоставить webserver пользователю разрешения на запись в эту папку, обычно пользователь: www-data или _www .

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

 chmod 775 storage/framework/cache
chmod 775 storage/framework/cache/data

sudo chgrp www-data storage/framework/cache
sudo chgrp www-data storage/framework/cache/data