मैं Vagrant और Chef का उपयोग करने के लिए अपेक्षाकृत नया हूं। मैं वर्तमान में उबंटू ल्यूसिड 64 चला रहा हूं और Opscode PHP cookbook का उपयोग कर रहा हूं जो डिफ़ॉल्ट रूप से एक पैकेज के रूप में PHP 5.3.2 स्थापित करता है। मैं PHP 5.3.8 या 9 (या तो स्रोत से या पैकेज के रूप में) स्थापित करना चाहता हूं लेकिन मुझे लगता है कि इसे सही तरीके से कॉन्फ़िगर कैसे किया जाए। मैंने आश्रित कुकबुक (बिल्ड-आवश्यक, एक्सएमएल, माइस्क्ल) पर प्रतिलिपि बनाई है। यह मेरे पास अब तक है:वग्रेंट और शेफ: PHP का एक नया संस्करण कैसे स्थापित करें?
# vagrant_main/recipes/default.rb
require_recipe "apt"
node.override["php"]["version"] = "5.3.9"
require_recipe "php::source"
लेकिन मुझे एक त्रुटि मिल रही है। यहाँ स्टैक ट्रेस के प्रासंगिक पंक्तियां हैं:
NameError: wrong constant name DebianBeforeSqueeze?
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:56:in `const_defined?'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:56:in `method_missing'
/tmp/vagrant-chef-1/chef-solo-1/mysql/recipes/client.rb:26:in `from_file'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/cookbook_version.rb:578:in `load_recipe'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/language_include_recipe.rb:40:in `include_recipe'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/language_include_recipe.rb:27:in `each'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/language_include_recipe.rb:27:in `include_recipe'
/tmp/vagrant-chef-1/chef-solo-1/php/recipes/source.rb:25:in `from_file'
अद्यतन: अगर मैं पीएचपी नुस्खा MySQL के बारे में चिंता नहीं कहता हूं, यह ठीक स्थापित करने के लिए लगता है ...
node.override["php"]["version"] = "5.3.9"
node.override["php"]["configure_options"]["mysql"] = false
require_recipe "php::source"
.. हालांकि, अपाचे को यह नहीं लगता है कि PHP का कौन सा संस्करण चल रहा है। php_info()
रिपोर्ट कर रहा है कि यह PHP 5.3.2 का उपयोग कर रहा है, लेकिन कमांड लाइन (php -v
) सही ढंग से 5.3.9 की रिपोर्ट कर रहा है।
मैं क्या गलत कर रहा हूं?
मुझे वग्रेंट के साथ कोई अनुभव नहीं है, लेकिन यह आपके सिस्टम पर PHP के विभिन्न संस्करणों (क्लाई संस्करण एक संस्करण, और या तो वेबसेवर में सीजीआई का मॉड्यूल) होना पूरी तरह से संभव है, मुझे लगता है कि यह मामला है । – Wrikken