Moja witryna magento 2 uległa awarii: błąd nieznany lub zły timezone ()

13

wprowadź opis zdjęcia tutaj

Kiedy wchodzę na moją stronę Magento, pojawiają się błędy

DateTimeZone :: __ construct (): Nieznana lub zła strefa czasowa ()

na stronach Block i CMS oraz na wszystkich stronach z listą moich produktów w interfejsie pokazuje błąd 404 nie znaleziono strony. Sprawdź i pomóż mi jak najszybciej rozwiązać ten problem. Możesz sprawdzić ten problem tutaj. Rozwiązuję ten błąd, przywracając moją kopię zapasową.

Ale jeśli wiesz, dlaczego ten błąd nadchodzi, to pytanie jest nadal otwarte

Murtuza Zabuawala
źródło
Moja odpowiedź ci nie pomogła?
Siarhey Uchukhlebau,
Mam obecnie ten sam problem w Magento 2.1.3. Strona główna działa, ale nie wszystkie inne strony. Moja strefa czasowa jest odpowiednio ustawiona core_config_datana Europe/Amsterdam.
Giel Berkers,

Odpowiedzi:

41

Nie wiem dokładnie, JAK to się stało, ale w moim scenariuszu core_config_datatabela została uszkodzona. Dodał jakoś nowy wiersz z pathustawionymi na generali valueustawionymi na NULL:

zła konfiguracja w bazie danych

Wywołało to Magento\Framework\App\Config\ScopeConfigInterface::getValue()na public/vendor/magento/framework/Stdlib/DateTime/Timezone.php::scopeDate()celu powrót NULLzamiast Europe/Amsterdam. Nie trzeba dodawać, że kiedy \DateTimeZone()obiekt został utworzony, natychmiast wyrzucił ten wyjątek.

Jeśli więc ktoś napotka ten błąd, konfiguracja może być oczywistym miejscem do rozpoczęcia wyszukiwania.

Giel Berkers
źródło
4
Miałem dokładnie ten sam problem. core_cofig_dataPrzez pomyłkę dodałem nowy wiersz w tabeli, próbując wstawić wpisy do czegoś innego. Korzystam z aplikacji SequelPro na Macu, a gdy dodam nowy wiersz, automatycznie dodaje on generalścieżkę
Alex Dinca
1
tak, dla mnie ten sam szybki sposób na pozbycie się go w przyszłości:DELETE FROM core_config_data WHERE path LIKE 'general' AND value IS NULL LIMIT 1;
B00MER
Potwierdza, że ​​był to problem dotyczący M2 EE v 2.1.5. Czysta instalacja działająca do momentu zainstalowania uRapidFlow. Nie jestem pewien, czy jest to błąd Magento, czy problem z rozszerzeniem.
sparecycle 11.04.17
1
Działało to jako urok i nie zapomnij wyczyścić pamięci podręcznej po usunięciu wiersza „general” „NULL” w bazie danych;)
Alex
1
Mogę powiedzieć, że ten problem z pustymi / zerowymi wartościami w core_config_data with path = 'general' był problemem, na który cierpiał nawet Magento 1.
Rand
9

Strefa czasowa powinna być jedną z listy obsługiwanych stref czasowych . Wygląda na to, że używasz pustej strefy czasowej.

Spróbuj wykryć bieżącą strefę czasową sklepu, używając następnego zapytania:

SELECT * FROM `core_config_data` WHERE `path` = 'general/locale/timezone'

Jeśli wynik jest pusty, spróbuj wstawić wartość domyślną:

INSERT INTO `core_config_data`(`path`, `value`) VALUES ('general/locale/timezone', 'Europe/Moscow')

Jeśli to nie pomoże - spróbuj wyszukać w projekcie: gdzie kod zgłasza błąd. Następnie spróbuj go debugować: wykryj, skąd nadchodzi pusta wartość strefy czasowej.

Siarhey Uchukhlebau
źródło
Właśnie przywróciłem poprzednią stronę, przywracając kopię zapasową. Pracujemy nad terminem, więc nie sprawdziłem problemu, który go spowodował, ale dziękuję za odpowiedź. Poparłem twoją odpowiedź i sprawdzę, czy to ten sam problem,
oznaczę
Napotkałem ten problem w waniliowej wersji 2.3.0 i rozwiązałem go, korzystając z powyższego rozwiązania. Dzięki @Siarhey
Praful Rajput
0

Rozwiązałem problem z poprawną odpowiedzią;

1, wybierz DO:

select * FROM `core_config_data` WHERE path = 'general'

2, Usuń DO:

DELETE FROM `core_config_data` WHERE path = 'general'

Wtedy strona działa, mam nadzieję, że się przydadzę.

jerry xu
źródło
Giel Berkers już odpowiedział na to samo, na co odpowiedziałeś ??
Murtuza Zabuawala
Tak, dziękuję!
jerry xu