首页 > 解决方案 > 宅基地 PHP 版本错误

问题描述

我正在尝试为 Laravel 5.4.36 制作一个流浪宅基地服务器。这样我就可以在本地练习将我的主网站升级到最新的 laravel 版本。

服务器正确启动,但我期待/需要 PHP 7.0 版。相反,当我在 SSH 终端中键入“php --version”时,我会得到版本 7.2.3。文档说 homestead 5.2.0 应该安装 PHP 7.0 版,但事实并非如此。(https://laravel.com/docs/5.2/homestead

键入“php artisan --version”会返回预期的 5.4.36 laravel 版本...

关于如何解决这个问题的想法?是否可以降级 php 版本并指定 7.0?

这是我的 Homestead.yaml 文件...

ip: 192.168.10.10
memory: 2048
cpus: 2
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
version: 5.2.0
keys:
    - ~/.ssh/id_rsa
folders:
    -
        map: 'C:\Users\Rick\Desktop\MyWebsite'
        to: /home/vagrant/code
sites:
    -
        map: mywebsite.test
        to: /home/vagrant/code/public
    -
        map: sub.mywebsite.test
        to: /home/vagrant/code/public
databases:
    - homestead
    - mywebsite
features:
    -
        mariadb: false
    -
        ohmyzsh: false
    -
        webdriver: false
name: mywebsite
hostname: www.mywebsite.test

标签: phplaravelhomestead

解决方案


Homestead 有几个版本的 PHP。如果您查看~/.bash_aliases,您应该会看到如下几行:

function php70() {
    sudo update-alternatives --set php /usr/bin/php7.0
    sudo update-alternatives --set php-config /usr/bin/php-config7.0
    sudo update-alternatives --set phpize /usr/bin/phpize7.0
}

function php71() {
    sudo update-alternatives --set php /usr/bin/php7.1
    sudo update-alternatives --set php-config /usr/bin/php-config7.1
    sudo update-alternatives --set phpize /usr/bin/phpize7.1
}

function php72() {
    sudo update-alternatives --set php /usr/bin/php7.2
    sudo update-alternatives --set php-config /usr/bin/php-config7.2
    sudo update-alternatives --set phpize /usr/bin/phpize7.2
}

function php73() {
    sudo update-alternatives --set php /usr/bin/php7.3
    sudo update-alternatives --set php-config /usr/bin/php-config7.3
    sudo update-alternatives --set phpize /usr/bin/phpize7.3
}

在命令行输入php70,它会切换命令行版本。

对于 Web 版本,您需要手动更新 nginx 配置文件或将 PHP 版本添加到映射中:

 map: mywebsite.test
 to: /home/vagrant/code/public
 php: "7.0"

您必须销毁盒子并重新启动它才能重新加载 Homestead 文件。


推荐阅读