Vagrant и Chef: как установить более новую версию PHP?

Я относительно новичок в использовании Vagrant и Шеф. В настоящее время я использую Ubuntu Lucid 64 и использую поваренную книгу Opscode PHP, которая устанавливает PHP 5.3.2, в виде пакета по умолчанию. Я хотел бы установить PHP 5.3.8 или 9 (либо из исходного кода, либо в виде пакета), но я не могу понять, как правильно его настроить. Я скопировал зависимые поваренные книги (build-essential, xml, mysql). Это то, что у меня есть до сих пор:

# 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'

Обновление: если я скажу PHP-рецепту не беспокоиться о MySQL, он установится нормально...

node.override["php"]["version"] = "5.3.9"
node.override["php"]["configure_options"]["mysql"] = false
require_recipe "php::source"

... однако Apache, похоже, не знает, какая версия PHP работает. php_info() сообщает, что использует PHP 5.3.2, но командная строка (php -v) правильно сообщает 5.3.9.

Что я делаю неправильно?


person Andrew    schedule 17.01.2012    source источник
comment
У меня нет опыта работы с Vagrant, но вполне возможно иметь разные версии PHP в вашей системе (вариант cli — одну версию, а модуль cgi на веб-сервере — другую), я считаю, что это так.   -  person Wrikken    schedule 18.01.2012


Ответы (1)


В /etc/apache2/mods-enabled/php5.load вы можете определить, какую версию php будет использовать Apache (она должна быть установлена).

person Matěj Koubík    schedule 03.12.2012
comment
Я давно не смотрел на это, но я уверен, что это было проблемой. Бьюсь об заклад, когда я устанавливал модуль Apache PHP, он не указывал правильную версию PHP, поскольку версия CLI была правильной. - person Andrew; 21.01.2013