Если у меня есть бродячая коробка с использованием puPHPet на OSX, возможно ли обновить версию PHP с 5.5 до 5.6 с простым изменением файла конфигурации, или мне нужно выполнить повторное предоставление с нуля?
В качестве альтернативы проще обновить PHP через менеджер пакетов гостевой ОС, в этом случае Убунту 14.04. В данном случае используется одна среда разработки (не большая группа), но позже я, возможно, захочу предоставить ту же среду для второго разработчика и / или в облачной службе, а затем потребуется последняя стабильная версия PHP.
ОБНОВИТЬ
Я попытался отредактировать puphpet / config.yml как предложено:
php:
install: '1'
version: '56'
composer: '1'
composer_home: ''
modules:
php:
- cli
- intl
- mcrypt
pear: { }
pecl:
- pecl_http
ini:
display_errors: On
error_reporting: '-1'
session.save_path: /var/lib/php/session
timezone: Europe/London
mod_php: 0
А потом сделал vagrant reload
но php -v
по-прежнему показывает 5.5.14. Я тоже пробовал vagrant reload --provision
и это, казалось, делало намного больше, чем просто перезапуск виртуальной машины (выполнялся через сценарии инициализации), но версия PHP не изменилась.
Насколько я знаю, это должно быть достаточно легко сделать.
Настроить puphpet/config.yml
чтобы отразить ваши изменения и запустить vagrant provision
,
Чтобы уточнить, чтобы обновить версию php, я настроил:
php:
install: '1'
version: '54'
в
php:
install: '1'
version: '56'
точное местоположение этой информации в config.yml для меня сейчас находится в строке 109-111. Но файл может отличаться в зависимости от функций, которые могут добавляться или не добавляться, поэтому не полагайтесь на это слишком сильно.
На самом деле, я не думаю, что вы можете сделать это, это более глубокая марионетка, не знаю, как это сделать.
Тем не менее, вы можете добавить собственный сценарий, который будет работать, но лучшее решение для меня — уничтожить и повторно запустить вашу виртуальную машину (что, по мнению бродячей философии, не должно вызывать проблем).
(Я попытался удалить каталог /.puphpet-stuff/ в виртуальной машине, так как думал, что vagrant посчитает, что это чистая установка после перезапуска предоставления vagrant, но он не работает лучше.)
Удачи
Была такая же проблема, после обновления в config.yml
версия PHP от ’54’ до ’56’ в бродячей коробке CentOS.
vagrant provision
с последующим vagrant reload
не работал.
vagrant destroy
с последующим vagrant up
работал для меня также.
Для того чтобы обновить версию php, пришлось уничтожить ВМ (vagrant destroy
), измените версию в config.yml
а затем сделать свежий vagrant up
У меня тоже не сработало vagrant provision
,
В конце я вошел через SSH и обновил php вручную.