Zainstalowałem i skonfigurowałem dzisiaj najnowszą wersję serwera WAMP - 2.1e. O niektórych problemach związanych z jego działaniem pisałem już wcześniej, także temat ten jest Wam na pewno znany. W dzisiejszym wpisie chciałbym pokazać, w jaki sposób ukryć “pomarańczowe komunikaty” o błędach wykonania skryptu PHP, jakie serwuje nam debugger XDebug.

Wstęp.

Na początku należą się Wam przeprosiny za moje zapominalstwo. Obiecałem, że w piątek będą pojawiały się wpisy, aczkolwiek byłem dzisiaj tak pochłonięty działaniami na komputerze, że nawet nie zauważyłem, kiedy na zegarze wybiła druga nad ranem. Niniejszym sypię sobie popiół na głowę i obiecuję więcej tego błędu nie popełniać. W każdym razie wniosek jest taki, że blog żyje, a więc mogę spokojnie przejść do tematu. ;]

WAMPServer 2.1e, bo tak brzmi pełna nazwa tego pakietu, to jeden z najwygodniejszych i najpopularniejszych gotowych stosów WAMP w środowisku Windowsa. Zawiera on w sobie:

  • Apache 2.2.17
  • PHP 5.3.5
  • MySQL 5.5.8
  • PhpMyAdmin 3.2.0.1
  • XDebug 2.1.0-5.3
Widać wyraźnie, że ten zestaw oprogramowania to absolutnie najnowsze, aczkolwiek stabilne wersje poszczególnych komponentów. Można by go w pewnym sensie nazwać “bleeding edge”, aczkolwiek ta nazwa odnosi się raczej do wersji niestabilnych, kompilowanych bezpośrednio z drzewa /trunk.

Z listy można także wyciągnąć wniosek, że oprócz standardowych komponentów Apache, PHP, MySQL i narzędzia PhpMyAdmin, w zestawieniu znalazł się także debugger XDebug. To właśnie on powoduje pojawianie się tych “pomarańczowych komunikatów” - tabelek, zawierających cały stos wywołań odpowiadający miejscu wystąpienia błędu. Oczywiście są one przydatne, ale czasem wolelibyśmy zobaczyć jednak zawartość strony internetowej, zamiast ciągnących się boksów, szczególnie, że nie zawsze pasują do layoutu strony.

Jak więc zatem je wyłączyć?

Rozwiązanie: edycja pliku php.ini.

Aby wyłączyć komunikaty narzędzia XDebug, będziemy musieli wprowadzić dwie zmiany do pliku php.ini:
  • Włączyć plik logu błędów PHP,
  • Wyłączyć rozszerzenie XDebug.
W pierwszym przypadku musimy odszukać w konfiguracji następującą linijkę:

;error_log = "%PATH%/logs/php_error.log"

gdzie fragment %PATH% oznacza ścieżkę do naszej instalacji pakietu. Usuwamy średnik z początku linii i możemy przejść do puntu drugiego. Tym razem odszukujemy następującą linijkę:

zend_extension = "%PATH%/bin/php/php5.3.5/zend_ext/php_xdebug-2.1.0-5.3-vc6.dll"
  • fragment %PATH% jest analogiczny do punktu pierwszego. Tutaj musimy dodać średnik na początku linii, aby zablokować rozszerzenie XDebug.

Po wykonaniu tych dwóch zmian zapisujemy plik php.ini i restartujemy cały pakiet wykorzystując menu kontekstowe ikonki w trayu. Wszystkie błędy wykonania zostaną grzecznie zapisane w logu błędów, a my możemy cieszyć się widokiem strony internetowej bez pomarańczowych kwadratów. ;]