TYPO3 „Oops, an error occurred!” – jak znaleźć przyczynę i naprawić
Zamiast strony TYPO3 pokazuje tylko „Oops, an error occurred!” i kod? Jak znaleźć właściwy błąd w logu i usunąć najczęstsze przyczyny.
W skrócie: „Oops, an error occurred!” to strona błędu, którą TYPO3 pokazuje w trybie produkcyjnym, żeby odwiedzający nie widzieli szczegółów technicznych. Prawdziwy błąd jest zapisany w logu TYPO3 i można go znaleźć po wyświetlonym kodzie. Częste przyczyny to rozszerzenie, które po aktualizacji przestało pasować, błąd w TypoScript, niezaktualizowana struktura bazy danych albo nowa wersja PHP. Często pomaga już samo wyczyszczenie wszystkich cache.
Komunikat wygląda na przykład tak: „Oops, an error occurred! Code: 20261110093412a1b2c3d4”. Wariant z „Code:” dotyczy zwykle jednego elementu treści, a reszta strony wyświetla się dalej. Gdy przerywa się cała strona, komunikat wygląda nieco inaczej, ale droga do przyczyny jest taka sama. TYPO3 celowo ukrywa przyczynę: komunikaty ze ścieżkami plików i szczegółami bazy danych nie powinny trafiać do odwiedzających.
Nazwy menu dotyczą TYPO3 do wersji 13. W TYPO3 14 część modułów panelu ma nowe nazwy, np. „Admin Tools” to teraz „Administration” albo „System”.
Krok 1: znaleźć błąd w logu
Kod w komunikacie to identyfikator, pod którym TYPO3 zapisuje pełny błąd w pliku logu. Logi są:
- w instalacjach przez Composer w
var/log/, - w instalacjach klasycznych w
typo3temp/var/log/.
Proszę otworzyć najnowszy plik, zwykle typo3_….log, i wyszukać kod z komunikatu. Obok jest właściwy komunikat z plikiem i numerem linii. Wiele błędów widać też w panelu w „System → Log”.
Krok 2: tymczasowo włączyć wyświetlanie błędów
Na czas szukania można kazać TYPO3 pokazywać błędy otwartym tekstem, i to tylko dla własnego adresu IP. W narzędziach administracyjnych w „Settings → Configure Installation-Wide Options” w sekcji SYS proszę ustawić devIPmask na swój adres IP, a displayErrors zostawić na -1 (domyślnie). Tylko w takim połączeniu szczegóły widzą wyłącznie Państwo. Przy displayErrors = 1 widzą je wszyscy odwiedzający.
Ostrożnie z gotowym ustawieniem „Debug” w „Settings → Configuration Presets”: pokazuje ono błędy wszystkim odwiedzającym i nadaje się tylko na kopię testową. Po naprawie trzeba przywrócić devIPmask.
Najczęstsze przyczyny
1. Cache
Po aktualizacji TYPO3 albo rozszerzeń w cache czasem zostają stare pliki. W „Admin Tools → Maintenance” proszę wyczyścić wszystkie cache przyciskiem „Flush TYPO3 and PHP Cache”. Jeśli panel nie działa, można przez FTP usunąć zawartość var/cache/ albo typo3temp/var/cache/. TYPO3 odbuduje ją przy następnym wejściu.
2. Rozszerzenie po aktualizacji
To najczęstsza przyczyna przy aktualizacjach: rozszerzenie nie obsługuje jeszcze nowej wersji TYPO3 albo korzysta z usuniętych funkcji. W logu widać wtedy ścieżki typu typo3conf/ext/… albo vendor/… z nazwą rozszerzenia. Co wtedy zrobić, opisuję w artykule Rozszerzenie TYPO3 niekompatybilne.
3. Niezaktualizowana struktura bazy danych
Nowe wersje TYPO3 albo rozszerzeń często potrzebują dodatkowych kolumn w tabelach. Jeśli ich brakuje, pojawiają się błędy bazy danych. Proszę sprawdzić „Admin Tools → Maintenance → Analyze Database Structure” i wykonać proponowane zmiany, wcześniej robiąc kopię bazy. Dodatkowo w „Admin Tools → Upgrade” trzeba uruchomić zaległe kreatory aktualizacji (Upgrade Wizards).
4. Błąd w TypoScript albo szablonie
Jeśli błąd dotyczy tylko niektórych stron lub elementów, winny bywa TypoScript albo szablon Fluid, np. błędnie zapisany ViewHelper albo brakujący partial. Log zwykle podaje wtedy plik szablonu.
5. Nowa wersja PHP
Jeśli hosting zmienił PHP, starsze wersje TYPO3 i rozszerzeń często przestają działać. Każda wersja TYPO3 obsługuje tylko określony zakres wersji PHP. Jeśli na serwerze jest nowsze PHP, niż obsługuje Państwa TYPO3, na dłuższą metę pomoże tylko aktualizacja TYPO3.
6. Brak konfiguracji strony
Po przeniesieniu strony albo zmianie domeny TYPO3 czasem nie znajduje pasującej konfiguracji (Site Configuration). Proszę sprawdzić w panelu w „Site Management → Sites”, czy domena jest wpisana poprawnie, razem z https://.
Kiedy warto poprosić o pomoc
Gdy log pokazuje błąd w rozszerzeniu, do którego nie ma aktualizacji, gdy sam panel przestał działać albo gdy właśnie trwa aktualizacja wersji. W TYPO3 błędy często są ze sobą powiązane, a naprawa w złym miejscu niczego nie poprawi.
Profesjonalna pomoc
Znajduję błąd w logu, usuwam go na stałe i potem sprawdzam stronę i panel. Więcej w usłudze pomoc TYPO3. Analiza kosztuje 150 € netto, usunięcie typowych błędów zaczyna się od 290 € netto. Jeśli przyczyną jest przestarzała wersja TYPO3, właściwym krokiem jest aktualizacja TYPO3.