如何在Mac OS X上使用/ home目录

我有一台Mac,可以运行Leopard(10.5)或Snow Leopard(10.6)版本的OS X。 在将文件发布到生产主机之前,我正在使用它进行Web开发/testing。

在生产主机我的网站的文档根目录下的主目录(例如/ home / stimulatingpixels / public_html),我想在Mac上复制该位置。 不幸的是,他们是在Mac上的隐藏和locking的占位符,看起来像一个安装的驱动器,没有任何东西坐在/家的位置。

我从经验中知道,将其移到自己的/ home目录是不明智的,因为升级会导致它被删除(顺便说一句,它不会被存储在TimeMachine备份中)。

所以,这个问题,无论如何安全地使用/在Mac或Leopard或雪豹家?

(注:我意识到这是非常具体的Mac,并会在苹果论坛上提出,只是想问这里除了涵盖所有的基地。)

更新:为了帮助描述我为什么要这样做,除了前端网站之外,我还有一系列我也想运行的脚本。 能够使用/ home目录的主要目标之一(更具体地说,与服务器根目录相同的path)可以在开发mac上使用相同的输出path,也可以在生产服务器上使用。 我知道有办法解决这个问题,但我宁愿不必处理它。 真正的目标是使Mac上的所有文件与生产服务器的目录树的/根具有相同的文件path。

另一个更新:我之前忘记提到的另一个原因是在使用基本身份validation时设置.htaccesspath。 由于这些path来自文件系统根目录而不是网站docroot,所以当它们是树的一部分时,它们最终会经历“/ home”。

注:截至2015年,我不再使用或推荐这种方法。 相反,我使用Vagrant为开发和testing设置虚拟机。 它是免费的,相对容易,并允许更好地匹配生产环境。 它将开发环境完全分开,并且可以根据需要进行多次开发。 强烈推荐 为了后代的缘故,我留下了原来的答案。


我在苹果论坛上find了答案。

为了回收/home目录,编辑/etc/auto_master文件并使用/home注释掉(或删除)该行。 之后您需要重新启动以使更改生效(或者,根据nilbus的评论,尝试运行sudo automount -vc )。 这适用于Mac OS X 10.5(Leopard)。 你的免耕版本可能会有所不同,但它应该是相似的。

正如在论坛post中提到的那样,您还应该知道, Time Machine会自动排除/home目录, 并且不会将其备份


一个警告的注意事项,请确保在进行系统更新之前手动备份您的/home目录。 我相信我所做的一个更新(例如从10.6到10.7)在没有任何警告的情况下清除了我存储在/home 。 我不是100%确定发生了什么事情,但是要注意。

我在优胜美地(OS X 10.10.1)上尝试了sudo automount -vc没有工作,我不得不使用sudo umount /home

所以我的工作stream程是:

# comment out line starting with /home sudo vi "+g/^\/home/s/\//#\//" "+x" /etc/auto_master sudo umount /home # link actual home directory (/Users/<user>) to new 'home' (/home/<user>) ln -s $HOME /home/$USER

综合以上提示和提示:

  • 编辑/etc/auto_master注释掉/home中的行。

  • 重新安装:

    sudo automount -vc

  • 做一个软链接到mac地址目录:

    sudo ln -s $HOME /home/$USER

在这一点上,你的path应该匹配你的生产path。 env vars仍然会指向/Users/xxxx ,但是你在.bashrcpath中硬编码的任何东西(或者说在~/.pip/pip.conf )都应该是基本上相同的。 为我工作。

re: “真正的目标是使Mac上的所有文件与生产服务器的目录树的/根具有相同的文件path。”

在生产中,我的部署工作可能发生在/opt/projects/projname ,所以我将确保我的帐户可以写入/opt/projects并从那里开始。 我会开始做这样的事情:

sudo mkdir /opt/projects sudo chown $USER /opt/projects mkdir /opt/projects/projname cd /opt/projects/projname

使用LVM,我将为/opt/设置一个单独的分区,并在那里写入应用程序数据而不是$HOME 。 然后,我可以在需要更多磁盘空间的情况下增加/opt文件系统(LVM是你的朋友)。

你为什么不运行MAMP并使用Sites目录? 您可以开发本地主机,并为您的网站只有一堆别名。 我不知道为什么你特别需要使用主目录。


编辑:好的,我认为你正在解决你的问题错误的方式。

如果是你担心的HTMLpath,那么首先用斜杠“/”开始一切,这将默认为家庭模式。

如果它是PHP中的引用,那么您需要创build一个全局(或类似),并将其设置为您的网站的根。 然后,您可以参考全球的所有内容,当您将网站从开发移到生产时,您只需要更改全球范围。

因为它看起来更像是生产服务器,所以试图从/ home开发一个完整的方法是一个坏主意。

安装MAMP,在层次结构中创build高层次的全局,并开始重新引用。 从长远来看,这将是较less的痛苦。