2014-04-25 8 views

Odpowiedz

-1

Otwórz plik php.ini Sprawdź ścieżkę przed error_log

+0

nie powinno zdobyć downvoted, bo to jest właściwe wykorzystanie zgodnie z przeznaczeniem. Ludzie powinni używać dostarczonych narzędzi w taki sposób, w jaki zostały zaprojektowane, i tylko obracać własne rozwiązanie, jeśli jest ono niedostępne lub nie jest dostarczane. Na tej stronie jest zbyt wiele osób, które zakładają, że tylko dlatego, że nie rozwiązały swojego konkretnego problemu (i wszystkich jego powiązanych, ale nieudokumentowanych problemów), są automatycznie błędne. To nie jest złe, a jeśli to nie działa, twój serwer jest źle skonfigurowany, co jest Twoim prawdziwym problemem. – mopsyd

+0

Dodałbym jednak, że dzienniki można również zdefiniować w apache.conf lub vhost.conf. – mopsyd

5

cytatem from the documentation:

error_log ciąg

Nazwa pliku, w którym błędy skrypt powinien być zalogowanych. Plik powinien być zapisywalny przez użytkownika serwera WWW. Jeśli używany jest dziennik specjalnej wartości , błędy są wysyłane do rejestratora systemowego . W systemie Unix oznacza to syslog (3) i Windows NT, co oznacza dziennik zdarzeń . Rejestrator systemu nie jest obsługiwany w systemie Windows 95. Patrz także: syslog(). Jeśli ta dyrektywa nie jest ustawiona, błędy są wysyłane do rejestratora błędów SAPI . Na przykład jest to dziennik błędów w Apache lub stderr w CLI.

Więc, jeśli wartość nie jest ustawiony (który jest domyślny) zostanie wysłany do rejestratora błędów rodzic, który jest Apache (jeśli prowadzony przez niego) lub stderr jeśli uruchomić skrypt w linii poleceń .

Jeśli używasz skryptu za pomocą apache, będziesz musiał przejrzeć dziennik błędów apache, zwykle w /var/log/apache lub /var/log/httpd, w zależności od twojej dystrybucji. Możesz sprawdzić plik konfiguracyjny Apache dla dokładnej lokalizacji.

Edit:

Właśnie zauważyłem, że błędnie zinterpretowali swoje pytanie, myślę, że masz na myśli error_log ma wartość rzeczywistą error_log?

Właśnie przeprowadziłem testy. Kiedy ustawię error_log na wartość taką jak php_errors.log PHP nadal zapisuje komunikaty o błędach w dzienniku błędów apache. Zachowuje się tak, jakby wartość była pusta. Po ustawieniu wartości na pełną ścieżkę (np. /tmp/php_errors.log), zapisuje ona błędy do określonego pliku.

Więc domyślam się, że w twoim przypadku zapisuje błędy w pliku dziennika błędów apache.

Oczywiście można ustawić własny plik dziennika jest dodanie

ini_set("error_log", "/tmp/php_errors.log"); 

do plików PHP, gdzie jest to potrzebne (jeśli nie została wyłączona przez administratora).

+0

nie ma '/ apache' w'/var/log'. ale istnieje 'error_log' w'/usr/local/apache/logs', ale nie ma żadnych błędów PHP. kiedy uruchamiam moją stronę PHP, otrzymuję pusty ekran i chcę znać błąd składni. 'display_errors' jest wyłączone w' php.ini'. – Ryan

+0

powinieneś móc włączyć 'display_errors' w swoim pliku php. Po prostu dodaj 'ini_set (" display_errors ", 1);' na początku. –

+0

wspaniały pomysł przyjaciela – Ryan

0

Gdy wartość po prostu mówi error_log (lub error_log = error_log w pliku php.ini), oznacza to, że błędy zostaną zapisane do pliku o nazwie error_log w tym samym katalogu, w którym wystąpił błąd.

Tak więc, jeśli masz plik o nazwie index.php w /home/user/public_html/ który zgłasza błąd, błąd zostanie zapisany do: /home/user/public_html/error_log.

Jeśli masz plik o nazwie resize.php w /home/user/public_html/admin/images/ który zgłasza błąd, to błędy będą zapisywane: /home/user/public_html/admin/images/error_log


Źródło: Display and log errors for PHP

Powiązane problemy