Создать ссылку на storage из внешнего каталога для Laravel

Столкнулся с проблемой при создании ссылки обычной командой php artisan storage:link для проекта публичной папкой за пределом корневой папки Laravel

loc-team (корневой каталог)
—docs
——team (это публичная папка, та, что по-умолчанию "public")
———storage (Хочу создать ссылку сюда)
—laravel-team
——app
——storage
———app  (Хочу создать ссылку отсюда)
——...

По идеи достаточно было бы поправить путь в файле \config\filesystems.php, указать в блоке "links" путь к ярлыку и назначению ярлыка. Но этого оказалось недостаточно. Система (win 10) не создавала ссылку в нужном месте. Даже когда вручну прописывал в конфигах пути для нахождения ярлыка и источника. Постепенно волос на голове становилось все меньше. Решением стало выполнение команды через Windows cdm.


Открываем CMD (Пуск/поиск -> "Выполнить", вводим "cdm"), открывается командная строка. Или в вашей IDE тоже можно найти. Но! Неожиданным для меня нюансом стала невозможность выполнить команду в bash. Так что ищите именно cmd. (В VSCode она помечена как "New Comand Prompt" при добавлении нового терминала)

Перейдите в корневой каталог, и выполните команду (начиная с mklink).

D:\openserver\domains\loc-team.test\loc-team> mklink /J "docs\team\storage" "laravel-team\storage\app"

Обращаю внимание на все эти нюансы потому, что для меня осталось непонятным почему я не получил результат при вводе команды в таком виде:

D:\openserver\domains\loc-team2020.test\loc-team2020>mklink /J "D:\openserver\domains\loc-team2020.test\loc-team2020\laravel-team\docs\team\storage" "D:\openserver\domains\loc-team2020.test\loc-team2020\laravel-team\storage\app"

То есть нужно именно чтобы вы задали относительный путь. Специально оставил для этого место выполнения команды.

На сервере

Чтобы создать символическую ссылку на сервере используем команду ln ln [OPTION] [TARGET] [LINKNAME]

ln -s -v 'ПУТЬ_К_ПАПКЕ' 'ПУТЬ_К_СССЫЛКЕ'

В моем случае это выглядело так:

~/sitename.com$ ln -s -v '/home/id54884/site.com/laravel-team/storage/app' '/home/id54884/site.com/docs/team/storage'

Надеюсь, у вас все получилось. И на этом ваш "Путь к ссылке" закончился..

Комментарии (1)

  1. Алексей 07 июля 2023, 18:00 # 0
    Пол дня провозился с этой фигней. Спасибо большое за полезный материал!
    *Комментарий будет опубликован после проверки модератором

    Похожие статьи

    Загрузка изображения в Laravel

    Русификация Laravel

    Добавить поле к существующей таблице Laravel

    Как поменять язык в Faker

    Транслитерация URL в Laravel. Примеры str_slug()

    Разработка бота Telegram с помощью Botman на локальном компьютере

    Валидация данных в Laravel form request

    Laravel Excel - Базовый экспорт

    Добавить в botman editMessageText для Telegram

    Как сделать middleware в Laravel 6 - простой пример

    Создать ссылку на storage из внешнего каталога для Laravel

    Как русифицировать или поменять шаблон уведомления о сбросе пароля в Laravel

    Установить Laravel в отдельную папку (site.ru/laravel/)

    Laravel: Отношения моделей многие ко многим - belongsToMany

    Laravel: Отношения моделей один ко многим - hasMany, belongsTo

    Валидация номера кредитной карты на PHP (Laravel)

    Связать папку storage с папкой public в Laravel

    Откуда в Laravel Jetstream (inertia) prop auth.user?

    Создание form request в Laravel: руководство для начинающих

    Экспорт маршрутов из Laravel в JSON файл

    Постраничная навигация на Bootstrap в Laravel 8

    Обработка ошибок в Laravel form request

    Blade - расширить @section с использованием директивы @parent

    Добавить данные об авторизации при каждом запросе к API в Laravel

    Работа с файлами в Laravel Form Request

    Работа с вложенными объектами и коллекциями в Laravel form request

    Стандартные свойства модели в Laravel

    Laravel: Отношение через таблицу-посредника - hasOneThrough()

    Laravel: Отношения моделей один к одному - hasOne, belongsTo

    Авторизацией и аутентификация в Laravel form request

    Настройка команды CRON на хостинге nic.ru для активации Laravel schedule

    Laravel form request для создания API-запросов

    Laravel: Отношение через таблицу-посредника - hasManyThrough()

    HTTP-запросы в Laravel form request - работа с различными типами запросов

    Создание класса модели в Laravel

    Создание уникального индекса в миграции Laravel

    Установка Laravel и создание нового проекта

    Как создать модель в Laravel

    Создание таблицы в базе данных (миграции) для модели в Laravel

    Базовые методы CRUD контроллера для модели в Laravel

    Наш сайт использует куки, нажмите «ОК» если вы не против
    OK