1

Заранее извиняюсь за любые ошибки новичка с моей стороны ... Я - пользователь ПК, недавно внедрившийся в мир Mac с помощью новой работы ...

Запуск OS X Yosemite 10.10.5 PHP версии 5.5.27 Apache версии 2.4.16 (Unix)

Я пытался настроить и запустить localhost для локальной разработки веб-сайтов. Однажды я сделал это успешно - сам localhost работает без проблем.

Проблема возникла при попытке создать символическую ссылку между папкой сайтов, используемой localhost, и местом хранения файлов сайта (это местоположение не может быть изменено).
(Я также знаю о плохой практике с пробелами в именах файлов, но эти сайты уже созданы)

Я следовал инструкциям в этом уроке, сначала без проблем. http://ole.michelsen.dk/blog/setup-local-web-server-apache-php-osx-yosemite.html

У меня есть ОДИН сайт, настроенный и работающий с символической ссылкой, созданной с помощью ln -s '~/Dropbox/Shared Sites/SITENAME ~/Sites/SITENAME' Никаких проблем здесь (SITENAME - это каталог, в котором находятся файлы сайта)

Тем не менее, я сейчас пытаюсь добавить второй сайт. Используя приведенную выше команду, терминал перестает отвечать на запросы. A> добавляется к следующей строке, но кажется, что команды не выполняются (символическая ссылка не работает). Я могу печатать, но команды не выполняются. Нажатие CTRL+C возвращает терминал в предыдущее состояние, где он снова будет принимать команды. Все остальные команды работают правильно.

Я проверил, что каталог существует, и могу перейти к нему. Я также попытался запустить ln -s '/SITENAME ~/Sites/SITENAME', находясь в родительской папке, с тем же результатом. Я также попытался запустить команду с sudo

Я также попытался загрузить и использовать iTerm, с тем же результатом.

Также пытались создать символическую ссылку для 3-го / отдельного сайта, то же самое снова.

Может ли кто-нибудь пролить свет на то, почему эта команда перестала функционировать при предыдущей работе, и как исправить или обойти эту проблему, чтобы добавить дополнительные сайты в localhost?

Спасибо :)

2 ответа2

0

Ради ясности для всех, у кого может быть такая же проблема (я не могу быть единственной, верно?:S):

Благодаря @TOOGAM - решение состояло в том, чтобы убрать апострофы / кавычки и вместо этого убрать пробелы с помощью \ - так что команда, которая сейчас работает,

ln -s ~/Dropbox/Shared\ Sites/SITENAME ~/Sites/SITENAME

До сих пор не известно, почему он изначально работал с апострофами, но проблема все же решена! :)

0

Для всех, кто присоединяется, см. Также ответ, который опубликовала Рокси Уолш, в котором содержатся некоторые дополнительные сведения о проблеме, которые необходимы для понимания некоторых деталей, представленных в моем ответе.

Хорошо, вот сделка:
Апострофы убегали от тильд.

Попробуй это:

эхо ~
эхо '~'

Вы обнаружите, что первая команда расширяет ~ до вашего домашнего каталога. Во второй команде вы получаете реальную тильду. Тильда была "сбежала". Экранирование означает, что нужно указать, что к персонажу нужно относиться как к обычному символу, а не как к специальному значению.

Теперь, что вам нужно было сделать, это избежать пробелов, которые вы сделали с обратными слешами, но не избежать тильды. Пробелы обычно имеют особое значение, которое заключается в том, чтобы отделить ваши параметры. Вы не хотите разделять это: ваше пространство в «Shared Sites/» является частью одного каталога. Это конкретное пространство не предназначено для указания команде "ln", что вы закончили указывать первый файл / каталог, и собираетесь указать следующий файл / каталог. Так что это пространство нужно было избежать.

Исходя из показанного вами примера, сработало бы следующее:

ln -s ~/'Dropbox/Общие сайты /SITENAME' ~/Сайты /SITENAME

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .