【发布时间】:2016-02-18 14:04:55
【问题描述】:
我正在编写一个脚本来在 Mamp Pro 中创建虚拟主机。我希望它们被创建并出现在我通过 GUI 手动创建的普通的 GUI 旁边。我在 SO 上发现了以下问题:
到目前为止,这是我的发现:
-
我发现 MAMP Pro GUI 中出现的主机位于:~/Library/Application\ Support/appsolute/MAMP\ PRO/settings3.plist;我试过编辑它,但我似乎无法使用命令
李>PlistBuddy -c 'print ":virtualHosts"' settings3.plist正确输入条目,该命令显示 Print: Entry, ":virtualHosts", Does Not Exist -
从上面列出的第二个问题中,我发现我可以通过 GUI 编辑 httpd.conf 文件(一个在用户库中,一个在根库中)。
包含所有 IP 地址的 hosts 文件位于 /private/etc/hosts
这些问题已经死了,尽管我评论了最新的一个问题,询问他最后是如何解决他的脚本问题的。
最后,我可以轻松地将值添加到 hosts 文件和 vhosts.conf 文件中以使网站正常运行。我唯一的问题是让它与 MAMP Pro GUI 中的其他虚拟主机一起显示在列表中。
更新:经过进一步调查和实验,我意识到了虚拟主机的创建过程;当我第一次通过 GUI 创建主机时,settings3.plist 文件会更新,当我点击“保存”以保存更改时,主机和 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
【问题讨论】:
-
确保您使用的是文件 ~/Library/Application Support/appsolute/MAMP PRO/settings.plist,即检查您使用的是正确的 plist 文件。在我的带有 MAMP PRO 2.2 的系统(Mac OS X 10.11.1 El Capitan)上,文件是 settings.plist,我在Automatic Virtual Hosts with MAMP Pro? 中的回答中的命令可以正常工作。您使用的是哪个版本的 MAMP PRO/哪个 MAC OS X 版本?在任何情况下,.plist 文件都是一个 xml 文件,您可以使用编辑器对其进行检查,甚至编写一个简单的脚本来处理它。
-
我有机会通过朋友使用的 MAMP PRO 3.4 来进一步研究这个问题。您确实在查看正确的文件,对于 MAMP PRO 版本 3.x 是 settings3.plist 并且它是 BINARY FORMAT PROPERTY LIST 而对于 MAMP PRO 版本 2.x 是 settings.plist 并且是 XML FORMAT PROPERTY LIST。我将尝试将我的发现回答您的问题。
-
我更新了我的问题。 @Symvan 另外,非常感谢您的帮助。
-
我会避免使用
plutil转换的往返行程,因为它错过了自动化点。我的方法是使用PlistBuddy
标签: plist mamp vhosts mamp-pro