2015-11-17 42 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