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

标签 php docker composer-php nix nix-flake

我正在创建一个 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

当我运行 8.1.17 时,Composer 似乎认为我的 PHP 版本是 8.0.28,但我不明白为什么。

我正在使用 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 版本。

最佳答案

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

我在 Docker 中运行我的 WordPress 实例,Docker 将其 PHP 版本设置为 8.0.28...

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

将 docker-compose WordPress 镜像更新为 image: wordpress:6.0-php8.1-apache 为我解决了这个问题。

关于php - 通过 Nix flake 安装时,Composer 读取的 PHP 版本不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75881990/

相关文章:

php - 在数据表中执行操作后返回上一页

python - 使用 Docker 在 Raspberry pi 中安装 Noetic 时出现的问题

php - Composer 在 packagist 上更新身份验证

shell - Docker compose 找不到 $PWD 环境变量

php - Laravel artisan 迁移失败

Composer 安装时出现 SSL 错误

php - PhpMatcherTrait 处 undefined offset

php - 在 mysql 和 php 中按年份分类

php - 在 mysql 中创建表的 php 代码的意外行为

docker - 我的 docker 硬盘怎么会比主机大呢?