Laravel Forge - 将项目升级到 Laravel 8 需要 PHP 7.4

3

我最近将一个托管在Forge上的项目迁移到了Laravel 8.x。在运行composer install时,部署脚本会失败,所有与错误PHP版本相关的消息都会显示:

Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - This package requires php ^7.4 but your PHP version (7.3.26) does not satisfy that requirement.
  Problem 2
    - Installation request for lcobucci/clock 2.0.0 -> satisfiable by lcobucci/clock[2.0.0].
    - lcobucci/clock 2.0.0 requires php ^7.4 || ^8.0 -> your PHP version (7.3.26) does not satisfy that requirement.
...

我确实做过这件事。

根据文档,在Meta > PHP Version中为该站点选择了PHP 7.4。在PHP Management中,默认为7.4,并更新到最新补丁。 enter image description here

我已经重新启动了PHP、Nginx和整个服务器,但都没有起作用。

通过SSH,它正在使用7.3.26:

forge@mistaken-identity:~$ php -v
PHP 7.3.26-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jan 13 2021 08:00:44) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.26, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.26-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Forge的PHP管理API是坏了,还是只有在我的服务器上出现问题?我想能够基于每个站点设置PHP版本。我该怎么解决这个问题?

1个回答

10

找到了。

Forge在PHP版本管理仪表板上有一个“在CLI中使用”按钮,这显然是Composer在决定安装/升级依赖项时查看的内容。我的设置仍然是7.3二进制文件。

enter image description here

博客文章中,它也简要提到了这一点:

此外,您可以确定哪个PHP版本是CLI的“默认”版本。默认的CLI PHP版本是在命令行上运行“php”命令时将执行的PHP版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接