Почему localhost (DocumentRoot) заблокирован для работы в GoogleDrive, Dropbox или Tresorit? - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь переместить мой DocumentRoot (то есть localhost) в синхронизированную папку (например, Google Drive, Dropbox или Tresorit), но попытка не удалась с ошибкой 403.

На машинах Windows я могу настроитьlocalhost для запуска из папки D: / GoogleDrive / SitesG;локальный сайт работает отлично.

На Mac, однако, localhost не будет работать, если не хватает папки облачного хранилища, такой как Google Drive, Dropbox, Tresorit и т. д.

Все хорошо, когда localhost находится в Users / myname / Sites.

Однако, когда я переконфигурирую Mac для запуска из Users / myname / GoogleDrive / SitesG - например, редактируя файлы httpd.conf и т. Д., - localhost блокируется.

Очевидно, что проблема связана с разрешениями для родительской папки (например, папка Google Drive или Dropbox или Tresorit).Я вижу, что разрешения для различных папок следующие:

drwxr-xr-x  32 myname  staff  1024 30 Apr 02:23 Sites
drwxr-xr-x   22 myname  staff      704 30 May 21:01 SitesG
drwx------@ 61 myname  staff  1952 30 May 17:47 GoogleDrive

Итак, мой вопрос: на Mac (под управлением HighSierra) возможно ли переместить DocumentRoot в GoogleDrive?Или в GoogleDrive есть что-то, что запрещает локальному хосту запускать папку на Google Диске?

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 августа 2018

Большое спасибо @DrFred за вышеупомянутое решение, которое, я уверен, сработает, хотя у меня не было возможности его протестировать.

Вот решение, которое я разработал до получения каких-либо ответов.Это очень похоже на приведенное выше описание доктора Фреда в том, что оба они решают проблему с символическими ссылками.Я добавляю свою для полноты и дополнительной детализации.

Как и выше, я занимаюсь разработкой на нескольких устройствах (несколько компьютеров Mac и Windows, рядом), поэтому моя цель состояла в том, чтобы иметь одну папку разработки localhost , который почти мгновенно синхронизируется между различными устройствами без необходимости проверять файлы в / из git и не сталкиваться с проблемами с правами доступа к файлам, возникающими при использовании Google Drive для синхронизации файлов кода.

Шаги, которые я использовал для достижения этой цели, были следующие.

  1. Создайте папку с именем ~ / Users / myname / SitesNew на Mac.

  2. Создайте символическую ссылку из этой папки в папку с тем же именем в Dropbox на том же Mac.После этого у вас будет две одинаковые папки на Mac:

    • ~ / Users / myname / SitesNew <- реальная папка на Mac </li>
    • ~ / Users / myname / Dropbox / SitesNew <- Символическая папка на Mac </li>
  3. Синхронизация Dropbox на всех устройствах (обязательно добавьте папку SitesNew, если вы используете выборочную синхронизацию на любом устройстве).Папка символической ссылки теперь будет отображаться как папка real в Dropbox в облаке и на ПК с Windows.В моем случае новая папка Windows PC была по адресу:
    • D: / Dropbox / SitesNew <- реальная папка в Windows </li>
  4. Обновите файлы Apache httpd.conf вMac для распознавания localhost в ~ / Users / myname / SitesNew.
  5. Обновите Apache httpd.conf на ПК с Windows, чтобы распознавать localhost в D: /Dropbox/SitesNew.

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

Примечание 1. Это решение работает только с Dropbox, но нес Google Drive, так как Google Drive имеет проблемы с символическими ссылками, а также по-другому портит разрешения, особенно на Mac.

Примечание 2. Если какие-либо файлы ранее были сохранены на Google Диске (например, изначально папка моих сайтов Windows находилась в D: \ GoogleDrive \ SitesOld), используйте chmod both (a), чтобы определить правильные значения для разрешений(например, см. https://chmod -calculator.com ) и (b) для преобразования папок и файлов в правильные значения.

0 голосов
/ 17 августа 2018

Размещение виртуального хоста Apache в облачной папке хранения создаст много проблем с разрешениями для файлов / папок.

Вместо того, чтобы переместить ваш documentRoot и изменить множество настроек и разрешений, вам будет легче, еслиДля каждого проекта, сохраненного в облаке, создайте в своей папке Users / myname / Sites символическую ссылку, указывающую на папку сайта GoogleDrive / Dropbox.

Представьте, что в папке Dropbox есть папка websiteA:

1) Перейдите в папку «Users / myname / Sites» и создайте такую ​​символическую ссылку

cd ~/Sites
ln -s ~/Dropbox/websiteA websiteA

Поскольку вы можете проверить открытие папки ~ / Sites в Finder, вы создали папку со стрелкойна нем, указывая на облачную папку «websiteA».

2) Теперь вам просто нужно создать виртуальный хост, указывающий на ~ / Sites / websiteA.

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

...