我尝试将我的 DocumentRoot(即 localhost)重新定位到同步文件夹(例如 Google Drive、Dropbox 或 Tresorit),但尝试失败并出现 403 错误。
在 Windows 计算机上,我可以将 localhost 配置为从 D:/GoogleDrive/SitesG 文件夹运行;本地站点运行完美。
但是,在 Mac 上,当用完基于云的存储文件夹(例如 Google Drive、Dropbox、Tresorit 等)时,本地主机将无法工作。
当本地主机位于 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 是否有一些固有的东西禁止 localhost 运行 Google Drive 文件夹?
最佳答案
将 Apache 虚拟主机定位到基于云的存储文件夹会产生许多文件/文件夹权限问题。
您应该更轻松地为每个云存储项目在您的 Users/myname/Sites 文件夹中创建一个符号链接(symbolic link),指向您的 GoogleDrive/Dropbox 网站文件夹,而不是重新定位您的 documentRoot 并更改大量设置和权限。
假设您的 Dropbox 文件夹中有一个“websiteA”文件夹:
1) 转到“Users/myname/Sites 文件夹”并创建这样的符号链接(symbolic link)
cd ~/Sites
ln -s ~/Dropbox/websiteA websiteA
正如您可以检查在 Finder 中打开 ~/Sites 文件夹一样,您已经创建了一个带有箭头的文件夹,指向“websiteA”基于云的文件夹。
2) 现在,您只需创建一个指向 ~/Sites/websiteA 的虚拟主机。
您可以将 ~/Sites 文件夹全局更改为指向基于云的文件夹的符号链接(symbolic link),但逐个项目的方法更加灵活,因为它允许您管理本地和基于云的文件夹项目。
关于apache - 为什么 localhost (DocumentRoot) 被阻止在 Google Drive、Dropbox 或 Tresorit 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50604689/