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

Eri*_*ich 3 php laravel-forge

我最近将 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.
...
Run Code Online (Sandbox Code Playgroud)

不过我这样做了。

至少根据文档。在本站点的元 > PHP 版本中选择 PHP 7.4。PHP管理中默认7.4,已更新至最新补丁。 在此输入图像描述

我重新启动了 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
Run Code Online (Sandbox Code Playgroud)

Forge 的 PHP 管理 API 是否损坏,或者只是在我的服务器上?我希望能够为每个站点设置 PHP 版本。我怎样才能解决这个问题?

Eri*_*ich 10

找到了。

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

在此输入图像描述

宣布该功能的博客文章中也简要提到了这一点:

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