3

如果我在 OSX 上使用puPHPet配置了一个 vagrant box ,是否可以通过简单的配置文件更改将 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,这似乎不仅仅是重新启动 VM(通过配置脚本运行),但 PHP 版本没有改变。

4

5 回答 5

3

据我所知,这应该很容易做到。

调整puphpet/config.yml以反映您的更改并运行vagrant provision

澄清一下,为了升级我调整的php版本:

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

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

对我来说,config.yml 中此信息的确切位置现在在第 109 到 111 行。但是文件可能会有所不同,具体取决于可能会或可能不会添加的功能,因此不要过分依赖。

于 2014-10-07T14:55:22.653 回答
2

实际上,我不认为你可以做到这一点,更深层次的傀儡不知道如何做到这一点。

尽管如此,您可以添加一个自定义脚本来解决问题,但对我来说最好的解决方案是销毁并重新启动您的 VM(根据 vagrant 哲学,我猜这应该不是问题)。

(我试图删除 vm 中的 /.puphpet-stuff/ 目录,因为我认为 vagrant 在重新启动 vagrant 配置后会认为这是一个全新的安装,但它并不能更好地工作。)

祝你好运

于 2014-11-09T11:39:49.770 回答
1

config.yml在 CentOS vagrant box 中将 PHP 版本从“54”更新为“56”后,遇到了同样的问题。

vagrant provision其次vagrant reload没有工作。

vagrant destroy其次vagrant up也为我工作。

于 2015-07-26T03:46:00.760 回答
0

为了升级php版本,我不得不销毁VM(vagrant destroy),更改版本config.yml然后重新做vagrant up

于 2014-11-16T09:58:22.443 回答
0

也不适用于我vagrant provision。最后,我通过 SSH 登录并手动更新了 php。

于 2016-01-19T05:08:54.627 回答