Php

使用 Puppet+Vagrant 為 PHP 安裝 Mongo 驅動程序

  • June 5, 2014

我正在玩 Vagrant 和 Puppet,為基於 Apache/PHP/Mongo 的項目配置開發機器。

我已經正確設置了所有組件(使用 Puppet Forge 的模組),但是對於我的生活,我無法弄清楚如何讓 PHP 與 Mongo 對話。phpinfo()顯示未安裝 Mongo 驅動程序 - 這才有意義,因為我不知道如何安裝它。

我用來安裝 PHP 的 puppet 模組來自 Lab42,可在http://github.com/lermit/puppet-php獲得。自述文件展示瞭如何切換模組而不是驅動程序(afaik,Mongo 連接是通過驅動程序而不是模組建立的)。

任何幫助、提示或指向.pp實際完成此操作的文件的連結都將受到歡迎。謝謝!

更新:

想出了這條神奇的線:php::pecl::module { "mongo": }

基本上通過 PECL 添加 Mongo 支持。但是當 Puppet 嘗試執行它時,我得到了這個:

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 

所以,有幾件事我不明白:

  1. 如果我讓 Puppet 通過 PECL 安裝模組,它為什麼要通過 apt-get 來安裝?
  2. 為什麼找不到那個包?我應該添加什麼倉庫才能使其正常工作?

再次感謝。

我確信這兩個問題的答案都在您使用的 puppet 模組中。

使用其他人開發的模組當然有很大的優勢,因為您可以從他們嵌入模組中的知識中獲益,但我建議您:

首先,弄清楚如何手動進行安裝(即,沒有 puppet)

其次,創建一個簡單的 Puppet 模組來自動化

第三,嘗試使用你找到的 puppet 模組,尤其是。在 puppetforge 上:https ://forge.puppetlabs.com/看看它們是否工作得更好或提供額外的功能。

關於 Vagrant 和 Puppet 有很多很好的資源,但我最喜歡的資源之一是 Deploying Rails http://pragprog.com/book/cbdepra/deploying-rails - 顯然專注於 Ruby on Rails,但它建構了 Vagrant/Puppet /VirtualBox 測試環境,聽起來很像你的,從頭開始。

引用自:https://serverfault.com/questions/536629