Мы добавили общий ресурс 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
Есть ли другой способ, когда вы хотите фактически указать папку в другом месте, а не в ее текущем местоположении?
Цель символической ссылки — создать «виртуальную» папку (или файл), которая указывает на существующую папку (или файл). Но вы не можете создать папку или файл, когда они уже существуют — точнее, вы не можете создать «виртуальную» папку (символическую ссылку), когда физический каталог уже существует.
... и если я вас правильно понял, у вас уже есть существующий каталог /home/example/public_html/images
. Вы не можете иметь и то, и другое; вам нужно будет удалить (или переименовать) существующий каталог веб-сервера.
Кроме того, символическая ссылка была создана внутри папки, потому что вы указали имя существующей папки в качестве цели.
Обновлять:
Предполагая вменяемый набор разрешений на сервере, вам, вероятно, нужно сделать это как root
или с помощью sudo
. Возможно, вам также следует убедиться, что разрешения для папки NFS ограничивают ваши веб-приложения доступом только для чтения.
Итак, если переименовать существующую папку, а затем сделать символическую ссылку с помощью приведенной выше команды, она должна работать как положено?
да. Но я не уверен, чего вы пытаетесь достичь. Если в папке уже есть нужные изображения, зачем вам символическая ссылка? Еще одна проблема может заключаться в том, что есть другой процесс, который обновляет эту папку ... с символической ссылкой вы можете перезаписывать файлы в /nfsshare
, что, как я предполагаю, вам не нужно.
На данный момент у нас есть один веб-сервер с локальными изображениями — мы перемещаем его в nfs, чтобы затем мы могли совместно использовать папку с изображениями между двумя веб-серверами, но не хотим обновлять какой-либо существующий код, чтобы направлять изображения в другой каталог. имя
В этом случае это звучит так, как будто существующая папка лишняя, и вы должны безопасно переименовывать.
Этот вопрос лучше задать в Суперпользователь или UNIX и Linux SE.