Можно ли обновить PHP в среде, созданной с помощью puPHPet?

Если у меня есть бродячий ящик, подготовленный с помощью puPHPet в OSX, можно ли обновить версию PHP с 5.5 до 5.6 с помощью простого изменить файл конфигурации или мне нужно повторно настроить с нуля?

В качестве альтернативы проще обновить PHP через диспетчер пакетов гостевой ОС, в данном случае Ubuntu 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 не изменилась.


person codecowboy    schedule 07.10.2014    source источник


Ответы (5)


Насколько я знаю, это должно быть достаточно легко сделать.

Настройте puphpet/config.yml, чтобы отразить ваши изменения, и запустите vagrant provision.

Чтобы уточнить, чтобы обновить версию php, я скорректировал:

php:
    install: '1'
    version: '54'

to

php:
    install: '1'
    version: '56'

точное расположение этой информации в config.yml для меня прямо сейчас находится в строках 109–111. Но файл может варьироваться в зависимости от функций, которые могут быть добавлены или не добавлены, поэтому не слишком полагайтесь на это.

person Rian    schedule 07.10.2014
comment
Я проверил это снова; ты был прав. Однако vagrant provision сработало для меня. Я установил новый кукольный ящик с php 5.4, после завершения vagrant up я проверил версию на сервере, она действительно была 5.4. Я изменил версию в config.yml на 5.6 и запустил положение. У меня возникла проблема с xdebug, но этот журнал (pastebin.com/ug8DLG5Q) ясно показывает, что установлена ​​версия 5.6. - person Rian; 12.11.2014
comment
Спасибо. Не могли бы вы добавить свои изменения config.yml в свой ответ? - person codecowboy; 12.11.2014
comment
Я только что попробовал. Это не сработало для меня. Фактически, марионетка установила 5.5.9, несмотря на то, что я выбрал 5.4. php -v показывает 5.5.9 до и после команды предоставления. Возможно, это просто не работает для Ubuntu 14.04? - person codecowboy; 16.11.2014

На самом деле, я не думаю, что вы можете это сделать, это более глубокая марионетка, которая не знает, как это сделать.

Тем не менее, вы можете добавить собственный скрипт, который сделает свое дело, но лучшее решение для меня — уничтожить и повторно запустить вашу виртуальную машину (что не должно быть проблемой, я думаю, согласно философии бродяг).

(Я пытался удалить каталог /.puphpet-stuff/ в виртуальной машине, так как думал, что бродяга поверит, что это чистая установка после перезапуска бродячего положения, но это не работает лучше.)

Удачи

person lenybernard    schedule 09.11.2014
comment
Спасибо. это то, что я в итоге сделал. - person codecowboy; 16.11.2014

Была такая же проблема после обновления в config.yml версии PHP с «54» до «56» в бродячей коробке CentOS.

vagrant provision, а затем vagrant reload не сработало.

vagrant destroy, за которым следует vagrant up, тоже сработало для меня.

person Mark    schedule 26.07.2015

Чтобы обновить версию php, мне пришлось уничтожить виртуальную машину (vagrant destroy), изменить версию в config.yml, а затем сделать новую vagrant up

person codecowboy    schedule 16.11.2014

У меня тоже не сработало с vagrant provision. В конце я вошел в систему через SSH и обновил php вручную.

person Bobz    schedule 19.01.2016