Ошибка Laravel 403 при отображении изображений из папки хранилища

Я не могу получить доступ к файлам, сохраненным в папке хранения. Я могу загружать файлы, сохранять файлы. Если я запустил, например, метод размера, он получит размер файла загруженного изображения, но когда дело доходит до отображения файла, я получаю ошибку 403. Я использовал команду laravel artisan для создания символической ссылки, я попытался создать символическую ссылку вручную. Я проверил, чтобы убедиться, что следующие символические ссылки находятся в моей конфигурации apache, я могу войти в него из оболочки, разрешения - 777 (у меня было это 755, но, пытаясь понять, что не так, я изменил его на 777) владение символической ссылкой а файлы внутри - это тот же пользователь и группа, что и все остальные файлы в общедоступном каталоге.

Я очень устал, так что, может быть, я просто упускаю что-то очевидное, но я не могу, хоть убей, понять, что не так. Файл явно существует, его видимость установлена ​​на «общедоступный». Есть ли причина, по которой я смогу записать каталог, но не отображать сохраненные в нем изображения?

Edit 1: web

  • приложение
  • бутстрап
  • config
  • база данных
  • ошибка
  • node_modules
  • общественный
  • Ресурсы
  • маршруты
  • статистика
  • место хранения
  • темп
  • продавец
  • Базовая структура с символической ссылкой внутри public, указывающей на storage / app / public

    файловые системы для моей конфигурации папки хранения:

    'public' => [
                'driver' => 'local',
                'root' => storage_path('app/public'),
                'url' => env('APP_URL').'/storage',
                'visibility' => 'public',
            ],
    

    На данный момент я действительно ничего не редактировал из базовой установки laravel. Я читал, что у кого-то еще была аналогичная проблема, и сказал, что их проблема в том, что им не разрешен доступ к директориям за пределами их корня документа. Таким образом, они просто отправили все загрузки в их общую папку, а не в папку для хранения. Корневой каталог моего документа установлен в мою общую папку. Могло ли это быть проблемой? (При необходимости я могу отредактировать свой файл apache)


    person ND Tb    schedule 06.10.2018    source источник
    comment
    Можете ли вы показать структуру каталогов вашего проекта, я имею в виду, где вы создали символическую ссылку и в каком подкаталоге хранилища вы храните файл. Я хотел бы увидеть конфигурационный файл вашей файловой системы.   -  person Prashant Pokhriyal    schedule 06.10.2018


    Ответы (1)


    Хорошо - немного поспал, сегодня утром все осмотрел и понял, что при входе в систему как владелец сайта все выглядит нормально, однако при входе в систему как root ссылка отображается как неработающая. В основном artisan создает абсолютную ссылку, которая / storage / app / public подходит как владелец сайта, потому что это измененная учетная запись, «корневой» каталог которой является веб-папкой. Однако на самом деле он создавал символическую ссылку на корень системы, к которой обычно учетная запись не имеет доступа, поэтому она возвращала 403

    В основном я просто сделал относительную ссылку, а не абсолютную, удалив сломанную символическую ссылку, созданную laravel, и в общедоступном каталоге введя: ln -s ../storage/app/public storage

    person ND Tb    schedule 06.10.2018
    comment
    После 6 часов поиска это сработало для меня. Большое спасибо. - person buryo; 11.05.2020
    comment
    Большое тебе спасибо! - person HalesEnchanted; 25.03.2021