Magento 2.1.1, PHP 7.1.0 ile uyumlu değil


14

PHP v7.1.0RC3yüklü yeni bir sunucum var . Göre DevDocs Magento 2 ile uyumludur 7.0.2 up to 7.1.0, except for 7.0.5yapan PHP 7.1.0aşağıdaki hatayı alıyorum Repo yüklemeye çalıştı ancak zaman M2 ile uyumlu:

Sorun 1 - Magento / ürün topluluğu topluluğu sürümü 2.1.1 -> magento / ürün topluluğu topluluğu sürümü tarafından karşılanabilir [2.1.1]. - magento / product-community-edition 2.1.1 php ~ 5.6.0 | 7.0.2 | ~ 7.0.6 -> gerektirir PHP sürümünüz (7.1.0RC3) bu gereksinimi karşılamamaktadır.

Yanıtlar:


23

Güncelleme - Eylül 2017:

Magento 2.2 artık PHP 7.1'i resmen destekliyor, bu yüzden PHP 7.1 platformunuzda istediğiniz veya ihtiyacınız olan bir şeyse bundan sonra hedeflemeniz gereken Magento sürümü.


Orijinal - Ekim 2016:

Aslında DevDocs belgelerinin bir hata olup olmadığını merak ediyorum ve belki de 7.1.0 yerine PHP 7.0.10 anlamına geliyordu, bu benim için daha anlamlı olurdu.

Bununla birlikte, test etmek istiyorsanız Magento 2.1.1, PHP 7.1 ile uyumlu olabilir, Composer'a şu an için PHP sürüm kontrolünü yoksaymasını söylemek için besteci komutlarınıza bu ek parametreyi ekleyin:

composer install --ignore-platform-reqs

Güncelleme:

Github'da bir sorun çıkardıktan sonra, gereksinimler açıklaması artık PHP 7.1'in bu noktada desteklenmediğini yansıtacak şekilde güncellendi. Tanım gerçekten bir yazım hatasıydı.


Aşağıda fschmengler'in önerdiği gibi besteci meselesine benziyordu, ancak yine yanıltıcı dev dokümanlar. PHP sürüm v7.0.11 ve bingo'ya indirildi.
Devtype

9

İki olasılık vardır:

  1. Devdocs yanlış ve PHP 7.1 desteklenmiyor
  2. İçindeki gereksinim composer.jsonyanlış.

Magento 2.1, PHP 7.1'den önce yayınlandığından, büyük olasılıkla seçenek (2) ve composer.json'daki gereksinim henüz güncellenmemiştir.

Ancak, --ignore-platform-reqsargümanınızı composer installkomutunuza eklerseniz, bunu yoksayabilir ve Magento'yu yine de yükleyebilirsiniz .

Güncelleme: https://github.com/magento/magento2/issues/7663 tarafından onaylandığı gibi Magento 2.1, PHP 7.1 ile uyumlu değildir

Güncelleme 2: 7.1 uyumluluğu için sürümünün bir parçası olacak birleştirilmiş bir PR olmuştur . Bkz. Https://github.com/magento/magento2/pull/8609#issuecomment-281743983


3

yasal uyarı: Bu bir hack. dikkatli kullanın.

php 7.1.0 ile en son Magento 2.1.3'ü nasıl kuracağınız ve çalıştıracağınız:

  1. yama setup/src/Magento/Setup/Model/PhpRedinessCheck.php:

    79         #$normalizedPhpVersion = $this->getNormalizedCurrentPhpVersion(PHP_VERSION);
    80         $normalizedPhpVersion = $this->getNormalizedCurrentPhpVersion('7.0.2');
  2. yama vendor/magento/framework/Encryption/Crypt.phpve bastırmak mcrypt / ile mdecrypt uyarılar @önek:

    resim açıklamasını buraya girin

Bu hack'i Magento 2.1.3 örnek veri kurulumunda test ettim.

Aslında benim tarafımdan PHP 7.1.0 üzerinde Magento 2.1.3 olarak yayınlandı


1
neden downvote açıklamak ister misiniz?
Konstantin Gerasimov

3

Ben composer install --ignore-platform-reqssadece M2 ile uyumsuz sunucu (veya bir şey eksik) başka bir şey çalıştırmıyorum emin olmak için yapmadım .

Çalışması için PHP version 7.0.11 sunucumda indirildim ve bu hile yaptı, bu yüzden Magento 2.1.1 ile uyumlu PHP version 7.0.11ve değilPHP 7.1.0


2

Bu yazı yazılırken Magento sürümü 2.1 ve PHP7.1 ile uyumlu değildir. PHP7.1 ile çalıştırmayı denerseniz aşağıdaki hatayı alırsınız.

Buradan daha fazlasını görün https://github.com/magento/magento2/issues/5880

Deprecated Functionality: Function mcrypt_module_open() is deprecated in /var/www/html/magento/vendor/magento/fr
  amework/Encryption/Crypt.php on line 54

0

İçinde bulunan işlevi düzenlemeniz gerekir

your_magento_root/setup/src/Magento/Setup/Model/PhpReadinessCheck.php

ve eklemeniz gerekir $normalizedPhpVersion='7.0.6'; getNormalizedCurrentPhpVersionfonksiyon satırı

Değişen fonksiyonun

private function getNormalizedCurrentPhpVersion($version)
    {
        try {
            $normalizedPhpVersion = $this->versionParser->normalize($version);
        } catch (\UnexpectedValueException $e) {
            $prettyVersion = preg_replace('#^([^~+-]+).*$#', '$1', $version);
            $normalizedPhpVersion = $this->versionParser->normalize($prettyVersion);
        }
        $normalizedPhpVersion='7.0.6';
        return $normalizedPhpVersion;
    }

Bu adımlar geçecek ve Magento 2.1'de PHP7.1.4'ü kullanabilirsiniz.

Alkış !!!


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.