我正在玩Vagrant和Puppet,为基于Apache / PHP / Mongo的项目提供开发机器。
我已经正确地设置了所有的组件(使用Puppet Forge的模块),但是对于我来说,我无法弄清楚如何使PHP与Mongo交谈。 phpinfo()表明,Mongo驱动程序没有安装 – 这只是有道理的,因为我不知道如何去安装它。
我用来安装PHP的puppet模块是Lab42的一个,可在http://github.com/lermit/puppet-php上find 。 自述演示如何切换模块而不是驱动程序 (afaik,Mongo连接通过驱动程序而不是模块build立)。
任何帮助,提示,或实际完成这个.pp文件的链接将是最受欢迎的。 谢谢!
更新:
想出了这个神奇的线: php::pecl::module { "mongo": }
基本上通过PECL添加Mongo支持。 但是当木偶试图运行它,我得到这个:
err: /Stage[main]/Project/Php::Pecl::Module[mongo]/Package[php-mongo]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install php5-mongo' returned 100: Reading package lists... Building dependency tree... Reading state information... E: Couldn't find package php5-mongo
所以,我不明白这一点:
再次感谢。
我相信这两个问题的答案都在你使用的傀儡模块中。
在使用其他人开发的模块方面肯定有很大的优势,因为你可以从他们已经embedded到模块中的知识中获益,但是我build议你:
首先,弄清楚如何手动安装(即没有木偶)
其次,创build一个简单的Puppet模块,使其自动化
第三,尝试使用你发现的傀儡模块, 在puppetforge上: https ://forge.puppetlabs.com/看他们是否更好地工作或提供额外的function。
在Vagrant和Puppet上有很多很好的资源,但我最喜欢的是部署Rails http://pragprog.com/book/cbdepra/deploying-rails-显然是关注Ruby on Rails,但是它build立了一个stream浪/木偶/ VirtualBoxtesting环境听起来很像你的,从头开始。
对我来说,答案是参数use_package :
php::pecl::module { "mongo": use_package => 'no', }
现在它就像一个魅力!