2015-11-17 41 views
1

我正在編寫一個腳本來在Mamp Pro中創建虛擬主機。我希望它們被創建並出現在我通過GUI手動創建的普通GUI旁邊的GUI中。我發現下列問題上的SO:如何通過命令行shell腳本自動創建MAMP Pro虛擬主機?

這裏是我的調查結果,到目前爲止:

  • 我發現該主機出現在MAMP Pro GUI中:〜/ Library/Application \ Support/appsolute/MAMP \ PRO/settings3.plist;我試着編輯它,但我似乎無法得到正確的條目用命令PlistBuddy -c 'print ":virtualHosts"' settings3.plist它說打印:輸入「:virtualHosts」,不存在

  • 從我所列出的第二個問題在上面,我發現我可以通過GUI編輯httpd.conf文件(一個在用戶庫中找到,一個在根庫中)。

  • hosts文件,包括所有的IP地址是在/私營/ etc/hosts中

的問題是死的,即使我評論了最近的一次詢問他是如何解決的更新他的腳本問題到底如何。

最後,我可以輕鬆地將這些值添加到hosts文件和vhosts.conf文件中,以使網站正常工作。我唯一的問題是讓它顯示在MAMP Pro GUI中其他虛擬主機的列表中。

更新:經過進一步的調查和實驗,我意識到創建虛擬主機的過程;當我第一次通過GUI創建主機時,settings3.plist文件得到更新,當我點擊「save」保存更改時,主機和httpd.conf文件會相應更新。我知道settings3.plist可以通過plutil -convert xml1 -o - settings3.plist > test.txt轉換爲XML,然後編輯它並通過plutil -convert binary -o - test.txt > settings3.plist將其轉換回二進制。

我的問題是,即使我得到了CP $ UID如何在XML格式中工作的要點,我無法創建一個腳本來展開概念,通過列表檢查值的位置,然後相應地輸入數值。我甚至問了一個問題關於在這裏:​​https://stackoverflow.com/q/33775025/1934402

+1

確保你使用了file〜/ Library/Application Support/appsolute/MAMP PRO/settings.plist,即檢查你是否在正確的plist文件上工作。在我使用MAMP PRO 2.2的系統(Mac OS X 10.11.1 El Capitan)中,文件是settings.plist,以及我在[自動虛擬主機與MAMP Pro?]答案中的命令(http://stackoverflow.com/questions/ 12359199/automatic-virtual-hosts-with-mamp-pro)工作正常。你在哪個版本的MAMP PRO上/哪個MAC OS X版本?在任何情況下,.plist文件都是一個xml文件,您可以使用編輯器檢查它,甚至編寫一個簡單的腳本來處理它。 – Symvan

+1

我有機會通過朋友使用的MAMP PRO 3.4獲得進一步的瞭解。你確實正在尋找正確的文件,其版本3.x的MAMP PRO是settings3.plist,它是二進制格式屬性列表,而版本2.x的MAMP PRO是settings.plist,並且是一個XML格式屬性列表。我會試着將我的發現放在你的問題的答案中。 – Symvan

+0

我更新了我的問題。 @Symvan另外,我非常感謝你的幫助。 – yaharga

回答

2

Automatic Virtual Hosts with MAMP Pro?提供的解決方案是指MAMP PRO版本2.x,其中主機配置保存在settings.plist這是一個XML格式的屬性列表文件而在MAMP PRO版本3 .x主機設置存儲在settings3.plist這是一個二進制格式屬性列表文件

即使在這種格式,你應該能夠做到:

/usr/libexec/PlistBuddy -c Print settings3.plist 

,仍然獲得該文件的內容。您的問題源於virtualHosts不再存在,因爲您將通過運行上述命令來看到該問題。以上命令的輸出是不是理解你的plist文件的結構,所以你可以運行非常有幫助:

plutil -convert xml1 -o - settings3.plist > ~/settings3.plist.xml 

然後制定出的~/settings3.plist.xml的結構,以找出PlistBuddy命令,使用哪個鍵。查看手冊頁plistPlistBuddy是一個好主意。請注意,密鑰名稱已更改,即使在xml文件中結構也不明確。

我希望這有助於。如果我有完整的編輯主機詳細信息的方法,我會進一步調查並修改此答案。

+0

我已經找到了XML文件的結構以及這些值的粗略含義,通過這篇文章:http://www.cclgroupltd.com/geek-post-nskeyedarchiver-files-他們是什麼,他們如何使用他們/我不知道如何將所有這些邏輯放到shell腳本中。 – yaharga