2009-09-01 84 views
40

我有一臺Mac,可以運行Leopard(10.5)或Snow Leopard(10.6)版本的OS X。在將文件發佈到我的生產主機之前,我正在使用它進行Web開發/測試。如何在Mac OS X上使用/ home目錄

在生產主機上,我的站點的doc根位於home目錄下(例如/ home/stimulatingpixels/public_html),我想在Mac上覆制該位置。不幸的是,它們是Mac上的隱藏式鎖定佔位符,看起來像是一個安裝的驅動器,其中沒有任何內容位於/ home位置。

我從經驗中知道,將它移到自己的/ home目錄是不明智的,因爲升級可能會導致它被擦除(順便說一下,它不會保存在TimeMachine備份中)。

所以,這個問題,是否有安全使用/家在Mac或Leopard或雪豹?

(注:我知道這是非常的Mac專用,將要求它在蘋果論壇上也只是想問問這裏除了涵蓋所有的基礎。)

更新:爲了幫助說明爲什麼我想這樣做,除了前端網站之外,我還有一系列我也想運行的腳本。能夠使用/ home目錄(更具體地說,與服務器根目錄相同的路徑)的主要目標之一是可以在開發mac上使用相同的輸出路徑,並且可以在生產服務器上使用。我知道有辦法解決這個問題,但我寧願不必處理它。真正的目標是使開發Mac上的所有文件與生產服務器具有相同的目錄樹的/根目錄下的文件路徑。

另一個更新:我之前忘記提到的另一個原因是在使用基本身份驗證時設置.htaccess路徑。由於這些路徑來自文件系統根目錄而不是網站docroot,因此當它們是樹的一部分時,它們最終會經歷「/ home」。

+0

聽起來你使用Wordpress或其他CMS不處理本地開發超好聽。 – 2009-09-01 14:15:48

+0

我已經在上面添加了更新。它更多的是關於我運行的輔助腳本,並希望它們在開發Mac上與生產服務器具有相同的文件路徑。 – 2009-09-01 14:28:50

+0

注意:這可能是Mac特有的,最好在蘋果支持網站上詢問。爲了涵蓋所有的基礎,我在這裏要求的效果是相同的:http://discussions.apple.com/thread.jspa?threadID=2138336&stqc=true – 2009-09-01 15:52:42

回答

55

注意:截至2015年,我不再使用或推薦此方法。相反,我使用Vagrant爲開發和測試設置虛擬機。它免費,相對容易,並且可以更好地匹配生產環境。它將開發環境完全分開,並且可以根據需要製作多個。 強烈推薦。爲了後代的緣故,我在下面留下原始答案。


我找到了答案here on the Apple forums

爲了回收/home目錄,請編輯/etc/auto_master文件並註釋掉(或刪除)其中包含/home的行。此後您需要重新啓動以使更改生效(或者,每個nilbus的評論,請嘗試運行sudo automount -vc)。這適用於Mac OS X 10.5(Leopard)。不同版本的你的米勒可能會有所不同,但它應該是相似的。

由於對論壇上發帖指出,你也應該知道,的Time Machine自動排除/home目錄和背起來


一記警告,請務必做系統更新之前手動備份/home目錄。我相信我所做的更新之一(例如從10.6到10.7)在沒有警告的情況下清除了我在/home中存儲的內容。我不是100%確定發生了什麼事情,但應該注意的是。

+9

無需重新啓動;只需運行:sudo automount -vc – 2013-04-02 22:25:08

+0

蘋果論壇的鏈接已損壞。 – Juve 2014-11-03 12:48:57

+0

Apple更改了論壇的URL格式。我已更新鏈接以指向新位置。 – 2014-11-04 14:50:29

-2

爲什麼不運行MAMP並使用Sites目錄?您可以開發本地主機,併爲您的網站只有一堆別名。我不確定爲什麼你特別需要使用主目錄。


編輯: 好吧,我想你會了解您解決問題的錯誤的方式。

如果是你擔心的HTML路徑,那麼首先用斜槓「/」開始所有事情,這會將其默認爲家庭模塊。

如果它是PHP中的引用,那麼您需要創建一個全局(或類似)並將其設置爲您網站的根目錄。然後,您可以參考全球範圍內的所有內容,並且當您將網站從開發移到生產時,您只需要更改全球範圍內的內容。

嘗試從/ home開發,因爲它看起來更像是生產服務器是一個壞主意。

安裝MAMP,在層次結構中創建高位的全局並開始重新引用。從長遠來看,這將不那麼痛苦。

+0

Web服務器不是問題。我很好地運行Apache。我真正使用/ home目錄本身。無論服務器在使用哪個相同的問題都適用。我將在上面添加註釋,但真正的原因是我有一些本地腳本可以運行,並且希望能夠在本地開發框中定義路徑,以便它們與生產環境中的路徑匹配。這樣,我不必在部署期間處理更改它們。 – 2009-09-01 14:23:39

+0

只需使用符號鏈接,並讓您的本地腳本認爲它在/ home目錄上運行。 – 2009-09-01 14:26:00

+0

但是這就是使用像MAMP這樣的環境的原因......所以你可以設置你的開發環境,不管你喜歡和路徑應該完全一樣。你使用的是相對路徑還是確切路徑? – Evernoob 2009-09-01 14:26:29

8

從上面的提示和暗示全部放在一起:

  • 編輯/etc/auto_master註釋掉在它/home行。

  • 再登:

    sudo automount -vc

  • 做一個符號到MAC指明分數DIR:

    sudo ln -s $HOME /home/$USER

在這一點上,你的路應該匹配向上到您的生產路徑。 env變量仍然會指向/Users/xxxx,但是您在.bashrc的某個路徑中硬編碼的任何內容 - 或者說,在~/.pip/pip.conf中 - 應該基本上等效。爲我工作。

re:「真正的目標是使開發Mac上的所有文件與生產服務器的目錄樹的/根具有相同的文件路徑。」

生產,我的部署工作可能發生在/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是你的朋友)。

9

我在優勝美地(OS X 10)上試了一下。10.1)sudo automount -vc沒有工作,我不得不使用sudo umount /home

因此我的工作流程是:

# 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