Создать ссылку на 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'

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

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

  1. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

[MODX] Генератор настроек MIGX

Документация на русском по MODX MIGX

jQuery.Maskedinput js - документация на русском с примерами

[JS] Маска для ввода телефона +7(___)___-__-__

[MODX] Импорт и экспорт в MiniShop2. Реализация 1

[MODX] Подсказки по работе и заготовки для MiniShop2

Как включить HTTPS (SSL) в MODX - Подробная инструкция

[MODx, miniShop2] Генерация YML для выгрузки в маркет

[MODX] Примеры работы с API

[OpenCart] Вывести на главную все категории с картинками

[MODX] Сайт на обслуживании (выключить сайт)

Расширение свойств товаров minishop2

Пример перевода с помощью Yandex Translate API

[MODX, MIGX] Примеры использования

[MODX, MiniShop2] Примеры выборки where, optionFilters, innerJoin

Универсальная форма обратной связи — feedBackForm

[MODx, Gallery] Галерея. Вывести обложки альбомов и фотографии

Настройка Webpack - несколько точек входа и разделение на чанки

Отключить автозаполнение input

[Opencart] Вернуть английский язык, если вы его удалили

[MODX] pThumb - ресайз изображений. Примеры использования.

[OpenCart] Вывести модуль напрямую через контроллер

[MODX, MIGX] Вывести getImageList только если он не пустой

[MODX, MIGX] Тип поля "Список ресурсов" (resourcelist) с ограничением по родителю (parents)

[MODX, Quip] Более рабочий вариант

Все записи

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