Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF][ZF2] Wyświetlanie błędów / Internal Server Error
Forum PHP.pl > Forum > PHP > Frameworki
ShadowD
Jak włączyć wyświetlanie błędów w zf2? Robię co mogę ale za każdym razem mam "Internal Server Error"... W sieci nic nie mogę znaleźć na ten temat. :-(


Grrr ręczeni można dodać:
Kod
ini_set('display_errors', 1);
error_reporting(E_ALL);


Ale czy na pewno nie ma jakiś flag tak jak w zf1?
h3xed
w module / Application / config / module.config.php

'display_exceptions' daj na true
ShadowD
@h3xed - niestety nie działa, dodałem w configu modułu i próbowałem w globalnym (mam stokową aplikację zenda)... :-(

Jakieś inne pomysły / wskazówki? Szukałem coś o "display_exceptions", ale nic na ten temat nie ma, może link do dokumentacji masz jakiś?
csharp
daj może w .htaccess w publicu

  1. SetEnv APPLICATION_ENV development
ShadowD
@csharp to był mój pierwszy trop, w końcu zf1 nas do tego przyzwyczaił, ale niestety to nie działa, ehhh przekombinowali powinna być jakaś zmienna lub flaga w htaccess, a tutaj nie dość że nic nie działa to jeszcze nic w dokumentacji na ten temat nie ma. ;-(
csharp
faktycznie - jakaś straszna lipa z tym jest... trochę poszperałem i nic ciekawego nie znalazłem...

zobacz tu:
http://zend-framework-community.634137.n4....-td4656187.html
vermis
Cytat(ShadowD @ 18.09.2012, 13:14:08 ) *
... za każdym razem mam "Internal Server Error"...

Ale tutaj zmiana flagi raczej nic nie zmieni, bo to błąd serwera. Szukałbym raczej w okolicach .htaccess. Ewentualnie w logi serwera zajrzyj, może tam coś znajdziesz co cię naprowadzi.
melkorm
Cytat
Internal Server Error

Tak zwane 500'tki to raczej szukaj w .htaccess, wyświetlanie wyjątków / błędów nie ma raczej nic tutaj do rzeczy jeżeli nawet w apache error logu nic nie masz.

Wklej .htaccess'a może coś poradzimy.
ShadowD
Normą jest że standardowe ustawienie zend'a jedynki jak i dwójki to wyświetlanie zamiast błędów php błąd servera - 500, w jedynce trzeba było ustawić flagę w .htaccess (SetEnv APPLICATION_ENV development) lub zmienić ustawienia w configu, a w dwójce nie znalazłem wbudowanego mechanizmu i jeśli dodaję:
  1. ini_set('display_errors', 1);

To oczywiście wszystko naprawia i widzę normalne błędy, ale to rozwiązanie obchodzące na siłę fw i jest nie poprawne - przynajmniej w pierwszej odsłonie zend'a.

Ogólnie ilość problemów i dziur w dokumentacji (a to idealny przykład) poraża, jestem strasznie zniesmaczony zend'em na chwilę obecną, nie chce pisać już w jedynce z uwagi na inne problemy i chyba czas zmienić fw na sf.
melkorm
Używam Zend'a od 4 lat i nigdy nie rzucił mi Internal Server Error na ekran, ewentualnie białą stroną (exception) a zawsze miałem przy świeżej wersji problem z .htaccessem i zawsze poprawienie go skutkowało działaniem aplikacji.

Zresztą brak error'a w apache error log pokazuje że to nie żaden błąd aplikacji, zresztą daj w index.php w pierwszej linijce exit('foo'); i zobaczysz że w ogóle nie odpala skryptu.
ShadowD
Może mam źle skonfigurowanego locala, ale jestem pewnie że nie chodzi o htaccess.

Może tak jeśli ściągnę pliki zend'a (przykładowy projekt) to wszystko działa tak jak powinno, a wystarczy że umyślnie zmienię choćby nazwę głównego modułu (tylko katalogu w configu nic nie dotykając) i mam 500'kę widać mój server zamiast wyświetlać pustą stronę woli dać 500, miałem też tak w zf1, wystarczyło zmienić w configu na wersję "deweloperską" i wszystko śmigało jak trzeba. Teraz jak dodaje te regułki (1 post) w pierwszych liniach php to wyświetla normalny błąd, w tym przypadku o braku plików modułu. Więc wina nie jest po stronie htaccess.

@melkorm - rozumiem, że jak instalujesz zf2 i masz jakiś błąd zawsze pokazuje Ci jego treść czy białą stronę (u mnie jej odpowiednikiem jest 500)?
melkorm
Hum, dziwne smile.gif

Tak ja zawsze miałem białą stronę i nie spotkałem się chyba że przy błędzie syntaxa / exceptiona wywalał mi się htaccess, zawsze gdy miałem Internal Server Error chodziło o htaccess / konfigurację vhosta / serwera itp.

Może wrzucisz na github'a projekt (bo jak rozumiem jest to zend2 skeleton appliaction?) i wtedy luknę lokalnie o co chodzi i czy też mam błąd. Jeszcze czy możesz napisać jaki masz serwer+ Konfiguracja (wersja php, apache itp) i sprawdź czy w error_logu apacha nic nie masz.
ShadowD
W logu apacha jest błąd, po prostu zamiast dać białą stronę wyświetla 500.

Błąd popełniam specjalnie na tą chwilę by być pewnym co zrobiłem, innymi słowy co zrobić w zf2 by wyświetlały się błędy zamiast białej strony?

Server to najnowsza kompilacja od zend'a, projekt to też ich kompilacja. :-) Chodzi mi tylko o regułkę by aplikacja przeszła w stan dev, a nie produkcyjny.
melkorm
Z tego co wiem wszystko co robisz w kwestii czy to produkcja czy dev to Twoja brocha - jak to zawsze w myśl zend'a, więc sądzę że problem leży gdzie indziej, chociaż dużo zendem 2 się nie bawiłem ale problemów z tym nie miałem, zresztą 500'tka przy błędzie php'a ? Wciąż mi się wierzyć nie chce smile.gif
viking
Bo w starym zendzie jeśli korzystałeś z Zend_Application config wyglądał tak:

  1. [production]
  2. phpSettings.display_startup_errors = 0
  3. phpSettings.display_errors = 0
  4.  
  5.  
  6. [testing : production]
  7. phpSettings.display_startup_errors = 1
  8. phpSettings.display_errors = 1
  9.  
  10. [development : production]
  11. phpSettings.display_startup_errors = 1
  12. phpSettings.display_errors = 1


Czyli wrapper na ini_set(). Ewentualnie wyjątki do tego. W związku z czym w większości przypadków zamiast 500 na prod user widział białą stronę, na devie były wyświetlane. Ale szczerze mówiąc nie jestem w stanie się doszukać jak to wygląda na ZF2. Oczywiście można ustawić w .htaccess ale też uważam że nie tędy droga. Chyba najlepszym wyjściem będzie zapytać u źródeł (a często odpowiadają trzeba przyznać) i podlinkuj tutaj wątek.
ShadowD
@viking dokładnie o to chodzi, miło że ktoś załapał temat. ;-)

Napiszę gdzieś na forum Zend'a i dodam odpowiedź tutaj jeśli będę coś wiedzieć.
vermis
Cytat(melkorm @ 19.09.2012, 22:56:41 ) *
zresztą 500'tka przy błędzie php'a ? Wciąż mi się wierzyć nie chce smile.gif

Ja też się dziwiłem, aż do dziś smile.gif
Miałem dokładnie ten sam problem, czyli Error 500 przy błędzie w php. Okazuje się że zmiana display_errors na Off daje takie skutki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.