【问题标题】:Homestead PHP Version Wrong宅基地 PHP 版本错误
【发布时间】:2020-07-06 08:41:17
【问题描述】:

我正在尝试为 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

【问题讨论】:

  • 你这样做的目的是什么?我很确定从 7.2 降级到 7.0 没有任何好处
  • 我的实时网站在 php 版本 7.0.33 上运行...我想要一个相同的环境,以便我可以尝试在本地升级并解决任何问题,然后再在实时环境中这样做。

标签: php laravel homestead


【解决方案1】:

使用最新的 Homestead,您可以执行以下操作:

在您的Homestead.yaml 中,您可以为每个站点指定一个 PHP 版本。

  sites:
    -
        map: mywebsite.test
        to: /home/vagrant/code/public
        php: "7.1"
    -
        map: sub.mywebsite.test
        to: /home/vagrant/code/public
        php: "8.0"

如果这不起作用,您还可以通过在 Homestead 虚拟机中发出以下任何命令来更改 CLI 使用的 PHP 的默认版本:

php56
php70
php71
php72
php73
php74
php80

例如。在命令行中输入 php71 将 Homestead PHP 版本更改为 PHP 7.1

这将根据您指定的 PHP 版本更改您的 Homestead 环境。 您可以参考Official Documentation了解更多信息。

【讨论】:

    【解决方案2】:

    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,会切换命令行版本。

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

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

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

    【讨论】:

    • 哦,谢谢! Web 版本是 7.0,CLI 是 7.2...不知道版本有差异... phpinfo() 显示了正确的版本...
    • 谢谢,这是我得到的这个错误的解决方法:php 73 无法打开输入文件:73
    • @SpencerHill 命令中没有空格。 php73,不是php 73
    猜你喜欢
    • 2015-04-24
    • 2015-09-06
    • 1970-01-01
    • 2014-09-09
    • 2018-07-18
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    相关资源
    最近更新 更多