Mam za zadanie utworzenie strony internetowej w różnych środowiskach dla różnych etapów oceny (dev/test/staging/etc).Jak debugować skrypt PHP, który nigdy się nie kończy?
Wygląda jednak na to, że pewne różnice uniemożliwiają ukończenie skryptu PHP, więc strona nigdy nie jest dostarczana do przeglądarki.
Zastanawiam się, czy istnieje sposób, w jaki mogę wydrukować jakiś ślad stosu lub śledzenie po przecięciu połączenia, czy jest jakiś inny sposób, aby dowiedzieć się, co dokładnie robi PHP w dowolnym punkcie w cykl życia skryptu?
Jest to witryna Drupal, więc zawiera wiele kodów, których nie znam, i może zająć godziny, aby posortować polecenia w całym tekście, aby zobaczyć, do którego skryptu jest ładowany.
Rozumiem, że prawdopodobnie powinienem patrzeć na różnice w środowiskach, jednak wszystkie powinny mieć bardzo podobną konfigurację (Ubuntu 11.04), a środowisko przemieszczania wydaje się być całkowicie szczęśliwe z obsługi innych stron PHP, podczas gdy ta konkretna strona odmawia zakończenia. Jeśli cokolwiek ta strona przemieszczania ma więcej zasobów dostępnych niż inne środowiska, które nie mają problemów.
UPDATE: Przepraszam, znalazłem problem na końcu. Środowisko pomostowe znajdowało się w sieci VLAN, która nie mogła uzyskać dostępu do siebie za pośrednictwem publicznego adresu IP iz jakiegoś powodu (nadal nie wiedząc o tym) próbowała uzyskać dostęp do samego siebie jako część obciążenia strony i nigdy nie wypełniać żądania. Ustawienie wpisu pliku hosts dla 127.0.0.1 rozwiązało problem.
Czy zapoznałeś się z xdebug? –
Czy debuger krok po kroku jest opcją? http://xdebug.org/docs/remote –
Jeśli chcesz użyć 'die()', to co robię, to ta sama metoda, którą użyłeś przy odgadywaniu liczby od 1 do 1000. Pierwsza połowa początku sposób (500), a następnie, jeśli nie dojdzie do tego punktu, to punkt musi być wcześniej, a ty po raz kolejny w połowie (250) itd. – h2ooooooo