通过 Nix flake 安装时,Composer 读取的 PHP 版本不正确

问题描述 投票:0回答:1

我正在创建一个 WordPress 插件,但需要连接到 Xero 的 API。 Xero 建议使用 composer 插件

xero-php-oauth2
所以我将我的 WP 插件设置为使用 composer,这很有效。并且我已经成功安装并使用了
phpdotenv
作为测试

不幸的是,我收到以下错误:

Fatal error: Composer detected issues in your platform: Your Composer  dependencies require a PHP version "\>= 8.1.0". You are running  8.0.28. in  /var/www/html/wp-content/plugins/tws-eta-api-visualisations/vendor/composer/platform_check.php  on line 24

Composer 似乎认为我在运行时我的 PHP 版本是

8.0.28
8.1.17
,我不知道为什么。

我正在使用 Nix flake 配置 PHP 和 composer:

{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, nixpkgs, flake-utils }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = nixpkgs.legacyPackages.${system};
      in {
        devShell = with pkgs; pkgs.mkShell {
          buildInputs = [
            php81
            php81.packages.composer
            nodejs-16_x
            (yarn.override { nodejs = nodejs-16_x; })
          ];

          shellHook = ''
            if [ ! -d "vendor" ]; then
              ${php81}/bin/php ${php81.packages.composer}/libexec/composer/composer.phar update
              composer install
            fi

            if [ ! -d "node_modules" ]; then
              yarn install --immutable
            fi

            yarn build

            open http://localhost:8000
          '';
        };
      }
    );
}

有人知道我能做些什么来解决我的问题吗?

我尝试按照各种在线指南,通过配置更新、安装命令和

composer.phar
.

设置 Composer 的 PHP 版本
php composer-php nix nix-flake
1个回答
0
投票

这可能与所有人无关,但这就是发生在我身上的事情。

我在 Docker 中运行我的 WordPress 实例,Docker 将他们的 PHP 版本设置为

8.0.28
...

因此,虽然我的 Nix flake 正确设置了 PHP 版本,但在文件传输到 Docker 后,它使用的是 Dockers PHP 版本。

将 docker-compose WordPress 图像更新为

image: wordpress:6.0-php8.1-apache
已经为我解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.