Błąd krytyczny instalacji Magento 2 - Nie można utworzyć interfejsu

18

Zainstalowałem świeżego Magento 2.1 za pomocą wiersza poleceń i zawsze otrzymuję ten sam błąd krytyczny podczas próby uzyskania dostępu do frontendu lub backendu.

Błąd krytyczny: Nieprzechwycony błąd: Nie można utworzyć instancji interfejsu Magento \ Framework \ App \ Config \ Scope \ ReaderPoolInterface

Czy ktoś doświadczył tego samego? Znalazłem trochę zasobów, ale bez prawdziwej pomocy.

Aktualizacja Usunąłem var / di i var / generation i ustawiłem na tryb programisty

Fatal error: Uncaught Error: Cannot instantiate interface Magento\Framework\App\Config\Scope\ReaderPoolInterface in /shop/build/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:73 Stack trace: #0 
/shop/build/vendor/magento/framework/ObjectManager/ObjectManager.php(71): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\Framewo...') #1 
/shop/build/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(126): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\Framewo...') #2 
/shop/build/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(53): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\\Framewo...', NULL, 'readerPool', 'Magento\\Framewo...') #3 
/shop/build/vendor/magento/framework/ObjectManager/Factory/Dynamic/Develo in /shop/build/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php on line 73
Klettseb
źródło
Czy próbowałeś usunąć var ​​/ generation var / cache i przejść do trybu programisty?
Raphael at Digital Pianism
@RaphaelatDigitalPianizm zrobił oba bez powodzenia
Klettseb
Czy zainstalowałeś jakieś moduły stron trzecich przed uruchomieniem instalacji Magento?
Aurélien FOUCRET

Odpowiedzi:

14

Jeśli użyjesz konfiguracji nginx z oficjalnej próbki i uruchomisz Magento w trybie domyślnym / deweloperskim, ta sytuacja może się zdarzyć z globalną wartością katalogu głównego dokumentu ustawioną jako

root $MAGE_ROOT/pub;

Problem można rozwiązać, ustawiając katalog główny Magento z katalogu pub do katalogu głównego index.php

root $MAGE_ROOT;

W przypadku Apache DocumentRootzmiana wartości może również naprawić sytuację. Mam nadzieję, że to pomoże.

Jarosław Rogoza
źródło
Ustawienie katalogu głównego poza pubem nie jest ogólnie dobrym pomysłem.
siliconrockstar
13

Upewnij się, że moduł PHP intl jest zainstalowany, wyczyść var/generation(lub generation/*jeśli używasz Magento 2.2+) i var/cachewłącz moduły Magento ( bin/magento module:enable --all), skompiluj DI ( bin/magento setup:di:compile), a następnie spróbuj ponownie.

Erfan
źródło
Spot on. Wyłączenie jakichkolwiek modułów przed uruchomieniem setup:installlub setup:upgradestanowi problem
Stevie G.
5

Po pobraniu wszystkich plików / utworzeniu projektu przez kompozytora musisz skonfigurować sklep. Możesz to zrobić z wiersza poleceń:

php bin/magento setup:store-config:set --help

Lub wchodząc na: http://mystore.com/setup

Iazel
źródło
1

Aby pozbyć się tego problemu, wykonałem następujące kroki.

Najpierw ponownie zainstalowałem Magento całkowicie nowy, a potem to zrobiłem:

  • usunięto var / generation i var / cache

  • przełączono na tryb programisty w celu ponownej kompilacji

I nagle zadziałało dobrze

Klettseb
źródło
1
tryb ponownej kompilacji? gdzie to jest
Philipp Sander,
Jeśli przełączysz się w tryb programowania,
kompiluje się
1

Mam również ten problem przy próbie uruchomienia Magento cli jak magento listw terminalu. Po kilku godzinach wypróbowałem rozwiązania, ale wszystkie odpowiedzi nie działają dla mnie. okazuje się, że di.xmlplik został utracony.

Kroki :

  • Skopiuj wszystkie brakujące pliki stąd:

https://github.com/magento/magento2/tree/2.1/app/etc .

  • Następnie należy uruchomić Zdejmij cache: rm -rf var/*.
  • Teraz, jeśli uruchomisz, magento listto będzie działać ponownie.
Gujarat Santana
źródło
0

Miał ten sam problem spowodowany zmianą kodu bez uprzedniego wyczyszczenia pamięci podręcznej. Ręcznie wyczyściłem pamięć podręczną, to rozwiązało problem.

sudo rm -rf var / cache
sudo rm -rf var / di
sudo rm -rf var / generation
Dallas Clarke
źródło