Симлинк, когда каталог уже существует

Мы добавили общий ресурс NFS на наши веб-серверы и должны настроить символическую ссылку, однако мы не знаем, как это сделать, когда каталог уже существует.

Webserver directory : /home/example/public_html/images    
NFS target : /nfsshare

Мы хотим иметь симлинк из /home/example/public_html/images -> /nfsshare

Общий ресурс NFS имеет актуальную копию всего в /home/example/public_html/images, и мы хотим, чтобы каждый раз, когда кто-то переходит на https://www.example.com/images/123.jpg или ссылается на /images/123.jpg в HTML, он отображал файл /nfsshare/123.jpg Например

Когда мы создаем символическую ссылку

ln -s /nfsshare /home/example/public_html/images/ 

кажется, что он работает нормально, но когда мы переходим к /images, он по-прежнему показывает исходное содержимое, а папка nfsshare находится внутри папки с изображениями.

[root@host01 images]# ls
index.html  nfsshare  image.png

Есть ли другой способ, когда вы хотите фактически указать папку в другом месте, а не в ее текущем местоположении?

Этот вопрос лучше задать в Суперпользователь или UNIX и Linux SE.

David 18.07.2019 17:01
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
714
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Цель символической ссылки — создать «виртуальную» папку (или файл), которая указывает на существующую папку (или файл). Но вы не можете создать папку или файл, когда они уже существуют — точнее, вы не можете создать «виртуальную» папку (символическую ссылку), когда физический каталог уже существует.

... и если я вас правильно понял, у вас уже есть существующий каталог /home/example/public_html/images. Вы не можете иметь и то, и другое; вам нужно будет удалить (или переименовать) существующий каталог веб-сервера.

Кроме того, символическая ссылка была создана внутри папки, потому что вы указали имя существующей папки в качестве цели.

Обновлять:
Предполагая вменяемый набор разрешений на сервере, вам, вероятно, нужно сделать это как root или с помощью sudo. Возможно, вам также следует убедиться, что разрешения для папки NFS ограничивают ваши веб-приложения доступом только для чтения.

Итак, если переименовать существующую папку, а затем сделать символическую ссылку с помощью приведенной выше команды, она должна работать как положено?

bhttoan 18.07.2019 21:12

да. Но я не уверен, чего вы пытаетесь достичь. Если в папке уже есть нужные изображения, зачем вам символическая ссылка? Еще одна проблема может заключаться в том, что есть другой процесс, который обновляет эту папку ... с символической ссылкой вы можете перезаписывать файлы в /nfsshare, что, как я предполагаю, вам не нужно.

David 18.07.2019 21:56

На данный момент у нас есть один веб-сервер с локальными изображениями — мы перемещаем его в nfs, чтобы затем мы могли совместно использовать папку с изображениями между двумя веб-серверами, но не хотим обновлять какой-либо существующий код, чтобы направлять изображения в другой каталог. имя

bhttoan 18.07.2019 22:01

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

David 18.07.2019 22:04

Другие вопросы по теме