我正在编写一个脚本来在Mamp Pro中创建虚拟主机。我希望它们被创建并显示在我通过GUI手动创建的常规GUI旁边的GUI中。我在SO上发现了以下问题:
到目前为止,我的调查结果如下:
我发现出现在MAMP Pro GUI中的主机位于:〜/ Library / Application \ Support / appsolute / MAMP \ PRO / settings3.plist ;我已经尝试过编辑它,但我似乎无法使用命令PlistBuddy -c 'print ":virtualHosts"' settings3.plist
获得正确的条目,其中包含 Print:Entry,“:virtualHosts”,不存在
从我上面列出的第二个问题中,我发现我可以通过GUI编辑httpd.conf文件(一个在用户库中找到,一个在根库中)。
< / LI>包含所有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
答案 0 :(得分: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
命令中要使用的密钥。最好查看plist
和PlistBuddy
的手册页。请注意,即使在xml文件中,键名也已更改,结构也不清晰。
我希望这有帮助。如果我有完整的配方来编辑主机细节,我会进一步调查并修改这个答案。