Ошибка Laravel 403 при отображении изображений из папки хранения - PullRequest
0 голосов
/ 06 октября 2018

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

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

Редактировать 1: web

app bootstrap config база данных ошибка node_modules public ресурсы маршруты stats хранилище temp vendor

Базовая структура с символической ссылкой внутри public, указывающей на хранилище / app /public

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

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

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

1 Ответ

0 голосов
/ 06 октября 2018

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

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

...