我正在创建一个 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 版本
这可能与所有人无关,但这就是发生在我身上的事情。
我在 Docker 中运行我的 WordPress 实例,Docker 将他们的 PHP 版本设置为
8.0.28
...
因此,虽然我的 Nix flake 正确设置了 PHP 版本,但在文件传输到 Docker 后,它使用的是 Dockers PHP 版本。
将 docker-compose WordPress 图像更新为
image: wordpress:6.0-php8.1-apache
已经为我解决了这个问题。