Zainstalowałem lokalną kopię Magento 2. Mam problem z niestandardowym modułem.
Postępowałem zgodnie ze strukturą plików / folderów
app/code/Ps/HelloWorld/etc/module.xml
:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Ps_HelloWorld" schema_version="0.0.1" setup_version="0.0.1" />
</config>
Wewnątrz tego pliku mam następujące: Odświeżiłem pamięć podręczną sklepu, a następnie otrzymałem:
Wersja instalacyjna dla modułu „Ps_HelloWorld” nie jest określona.
magento2
magento2-dev-beta
Yogesh Karodiya
źródło
źródło
schema_version
a następnie spróbujbin/magento cache:flush
z folderu publicznegoOdpowiedzi:
Próbować
Zakładając, że prowadzisz bieżącą gałąź master, a nie gałąź dev
źródło
php -f bin/magento setup:upgrade
poleceniephp -f bin/magento
, albo dostarczy również jaki jest cel każdego poleceniaW moim przypadku było to uprawnienie do pliku / folderu tego modułu.
Apache nie mógł odczytać pliku konfiguracyjnego.
Zastosuj następujące uprawnienia do katalogu modułów.
źródło
Źródło odniesienia: https://magentoexplorer.com/magento-2-setup-version-for-module-is-not-specified-how-to-fix (w moim przypadku ten błąd wystąpił podczas tworzenia nowego modułu Magento 2 )
Ten błąd może wystąpić z powodu złych uprawnień do pliku / folderu modułu, możesz zmienić uprawnienia do folderu modułu w następujący sposób
Jest jeszcze jedna możliwość, że zapomniałeś dodać register.php i composer.json w module. Spróbuj dodać następujący plik
/app/code/Namespace/Module/registration.php
i /app/code/Namespace/Module/composer.json
Na koniec uruchom te polecenia
Mam nadzieję że to pomoże!
źródło
Dodatkowy scenariusz, w którym mi się to przydarzyło, polegał na przeprowadzeniu repozytorium mojego projektu, a moduł został usunięty z systemu plików. Chociaż było to celowe, pozostała w tym czasie konfiguracja dla niego w pliku konfiguracyjnym Magento.
Usunięcie odwołania do modułu
app/etc/config.php
rozwiązało mój problem.TL; DR
Najpierw próbowałem wyłączyć moduł za pomocą polecenia CLI,
module:disable VendorName_ModuleName
a odpowiedź z CLI była następującaUnknown module(s): 'VendorName_ModuleName'
. Zakładam, że dzieje się tak, ponieważ brakowało go już w systemie plików. Ponieważ nie było już zamiaru korzystania z modułu, ręczne usunięcie go zapp/etc/config.php
tego punktu wydaje się i tak właściwe.źródło
Otwórz bazę danych i znajdź tabelę
setup_module
.Twój moduł
Ps_HelloWorld
powinien znajdować się w tej tabeli.Jeśli nie znaleziono, spróbuj wprowadzić ręcznie.
źródło
Problem: plik
app/etc/config.php
został skopiowany z innej instancji magento (z powodu złej manipulacji plikiem). Z tego powodu miałem te same objawy, które opisano w tym pytaniu.Rozwiązaniem było usunięcie wszystkich nazw modułów, których nie było w przypadku Magento, w którym wystąpił problem, i zadziałało dobrze.
Zauważ, że lepszym rozwiązaniem byłoby prawdopodobnie
bin/magento module:status
, a następniebin/magento module:disable
dla wszystkich modułów z problemami.źródło