Magento 2安装Ingenico ePayments插件遇问题求助
咱们一步步来搞定你遇到的两个核心问题:Composer依赖解析失败和Update Cron脚本报错。
1. 修复Composer无法解析Ingenico依赖的问题
你碰到的「无法找到匹配的ingenico/library-ops-m2 ~3.3.0」错误,大概率是以下几个原因之一,对应解决方案如下:
原因1:未配置Ingenico私有仓库
Ingenico的部分核心依赖托管在私有Composer仓库,得先把仓库地址添加到你的Composer配置里:
composer config repositories.ingenico composer https://repo.ingenico.com/
添加完成后,重新执行安装命令:
composer require ingenico/ingenico_epayments_ogn2:3.3.1
原因2:Composer版本稳定性限制
如果你的项目默认只允许安装稳定版本,而ingenico/library-ops-m2 ~3.3.0可能处于RC或beta状态,你可以在项目根目录的composer.json里调整稳定性设置:
{ "minimum-stability": "stable", "prefer-stable": true, "require": { "ingenico/library-ops-m2": "~3.3.0@stable" } }
保存后再重新执行安装命令,或者直接用命令指定稳定性:
composer require ingenico/ingenico_epayments_ogn2:3.3.1 ingenico/library-ops-m2:~3.3.0@stable
原因3:包名或版本兼容性问题
确认插件包名是否正确,旧版本的Ingenico Magento 2插件可能用的是ingenico/ingenico_epayments_ogn2,如果还是不行,尝试安装兼容的最新版本:
composer require ingenico/ingenico_epayments_ogn2:^3.3
2. 修复Update Cron脚本的autoload.php缺失错误
这个问题的根源是update/cron.php默认加载update/vendor/autoload.php,但你的vendor目录在项目根目录,所以路径不匹配,有三种解决方案:
方案1:创建软链接(推荐)
在update目录下创建指向根目录vendor的软链接,这样不需要修改代码:
cd /var/www/html/update ln -s ../vendor vendor
然后再手动执行Cron脚本:
/usr/bin/php /var/www/html/update/cron.php
方案2:修改bootstrap文件路径
打开/var/www/html/update/app/bootstrap.php,找到第15行的require_once语句,把路径改成根目录的vendor:
// 原代码 require_once('/var/www/html/update/vendor/autoload.php'); // 修改后 require_once('/var/www/html/vendor/autoload.php');
保存后再执行Cron脚本即可。
方案3:重新生成Magento依赖
执行Magento CLI命令重新生成自动加载和依赖文件,修复路径问题:
php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento setup:static-content:deploy -f
执行完成后,再尝试运行Update Cron脚本。
内容的提问来源于stack exchange,提问作者Fbr

