Ответ 1
Вам нужно начать с понимания того, что цель символической ссылки - это путь. И он может быть абсолютным или относительным к каталогу, который содержит символическую ссылку
Предполагая, что у вас есть foo.conf в доступных сайтах
Try
cd sites-enabled
sudo ln -s ../sites-available/foo.conf .
ls -l
Теперь у вас будет символическая ссылка в сайтах с именем foo.conf, у которой есть цель.. /sites -available/foo.conf
Просто, чтобы быть ясным, обычная конфигурация для Apache заключается в том, что файлы конфигурации для потенциальных сайтов живут на доступных сайтах, а символические ссылки для разрешенных сайтов живут в сайтах, указывая на целевые объекты на доступных сайтах. Это не совсем так, как вы описываете свою установку, но это не ваша основная проблема.
Если вы хотите, чтобы символическая ссылка на ВСЕГДА указывала на один и тот же файл, независимо от того, где расположена символическая ссылка, тогда цель должна быть полным путем.
ln -s /etc/apache2/sites-available/foo.conf mysimlink-whatever.conf
Вот (строка 1 из) вывод моего ls -l/etc/apache2/sites-enabled:
lrwxrwxrwx 1 root root 26 Jun 24 21:06 000-default -> ../sites-available/default
Посмотрите, как цель символической ссылки связана с каталогом, который содержит символическую ссылку (она начинается с "..", что означает, что нужно перейти к одному каталогу).
Жесткие ссылки совершенно разные, потому что цель жесткой ссылки не является записью каталога, а системой регистрации Inode.