【问题标题】:Deprecated Functionality: idn_to_ascii() Magento 2.3.1 with PHP 7.2不推荐使用的功能:idn_to_ascii() Magento 2.3.1 和 PHP 7.2
【发布时间】:2019-06-19 07:08:42
【问题描述】:

我正在使用 Magento 2.3.1 和 PHP 7.2,在管理员端创建客户帐户时遇到错误。

在网上找到了一些降级PHP版本的资源。

在不降低 PHP 7.2 的情况下还有其他可用的选项吗?

日志:

main.CRITICAL:异常消息:不推荐使用的功能:idn_to_ascii():INTL_IDNA_VARIANT_2003 在 /public_html/vendor/zendframework/zend-validator/src/EmailAddress.php 第 560 行已弃用

idn_to_ascii() 在第 560 行:

return (idn_to_ascii($email) ?: $email);

【问题讨论】:

    标签: email deprecated php-7.2 magento-2.3


    【解决方案1】:

    我在将服务器的 PHP 版本升级到 7.3 后遇到了这个问题。

    最初,问题出在像您这样的 Zend 框架上,但在升级到 Magento 2.3.5(试图纠正问题)后,新的 Laminas 出现了相同的错误。

    我尝试了多种解决方案,包括将 guzzle 从 6.5.3 降级到 6.5.2,如下所示:https://stackoverflow.com/a/61596343/9667652

    似乎唯一的解决方案是将 PHP 降级到 7.1。即使使用 PHP 7.2,问题仍然存在。我已降级到 PHP 7.1,现在正在发送电子邮件。

    编辑:根据@user125661 的评论,请务必注意不再支持 PHP 7.1:

    PHP 7.1 已结束生命周期。为了保持 PCI 合规性,不应在不受支持的软件上运行 Magento。从 GitHub 安装将不再适用于 Magento 2.3.4/PHP 7.1。使用 PHP 7.1.x 安装 2.3.4 的唯一方法是使用 Composer。 Magento 推荐使用 PHP 7.3

    见:https://devdocs.magento.com/guides/v2.3/install-gde/system-requirements-tech.html#php

    此问题已反复遇到,但无法可靠重现,如此处所述:https://github.com/magento/magento2/issues/19795

    看起来问题的最可能原因是运行 CentOS 6 的服务器,其中需要 CentOS 7:https://github.com/magento/magento2/issues/19795#issuecomment-486432245

    最好的办法是将您的服务器安装到 CentOS 7 上,但如果这是不可能的,似乎唯一的解决方法是降级到 PHP 7.1。

    【讨论】:

    • 请注意:“PHP 7.1 已结束生命周期。为保持 PCI 合规性,不应在不受支持的软件上运行 Magento。从 GitHub 安装将不再适用于 Magento 2.3.4/PHP 7.1。使用 PHP 7.1.x 安装 2.3.4 的唯一方法是使用 Composer。Magento 建议使用 PHP 7.3" devdocs.magento.com/guides/v2.3/install-gde/… 所以我认为您的建议不会被接受。
    • @user125661 我知道冲突,但应该考虑包含更多引用。我已经更新了我的答案,更详细地反映了问题及其解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    相关资源
    最近更新 更多