Jestem na wspólnym hostingu i mam Cpanel, Apache, PHP jest prowadzony przez fastcgi. Gdzie PHP przechowuje dziennik błędów?
Czy jest jakiś inny sposób, aby znaleźć dziennik błędów we współdzielonym środowisku hostingowym, zamiast przeglądać całą strukturę witryny w poszukiwaniu plików dziennika błędów?
Mam dostęp do php.ini
(Używam PHP w wersji 5.2.16).
error-handling
php
PHPLOVER
źródło
źródło
/var/log/httpd/error_log
albo/var/log/apache2/error.log
. Te pliki są własnością root, więc musisz być rootem lub użyć,sudo
aby je zobaczyć lub przeczytać.php --info | grep error
php --info | findstr /r /c:"error_log"
aby zobaczyć, gdzie znajduje się plik dziennika.Odpowiedzi:
PHP przechowuje logi błędów,
/var/log/apache2
jeśli PHP jest modułem apache2. Hosty współdzielone często przechowują pliki dziennika w/log
podfolderze katalogu głównego . Ale ... jeśli masz dostęp dophp.ini
pliku, możesz to zrobić:Zgodnie z komentarzem rinogo : Jeśli używasz cPanel, główny plik dziennika, którego prawdopodobnie szukasz, jest przechowywany (domyślnie) w
Jeśli wszystko inne zawiedzie, możesz sprawdzić lokalizację pliku dziennika za pomocą
źródło
/usr/local/apache/logs/error_log
<?php phpinfo(); ?>
aby potwierdzić ścieżkęSpróbuj wyszukać
phpinfo()
„dziennik błędów”źródło
echo ini_get('error_log');
?error_reporting(E_ALL|E_STRICT);
se.php.net/manual/en/function.error-reporting.phpLinux
Terminal wyświetli lokalizację dziennika błędów.
Windows
Wiersz polecenia wyświetli lokalizację dziennika błędów
Aby ustawić lokalizację dziennika
Otwórz
php.ini
i dodaj następujący wiersz:Dzięki @chelmertez , @Boom za te (komentarze do pytania).
źródło
php -info
coś? Musisz upewnić się, żephp
faktycznie dzwoni do PHP, aby uruchomić ...php.ini
i ustawićerror_reporting
jeE_ALL & ~E_DEPRECATED & ~E_STRICT
, lub cokolwiek innego, co chcesz zobaczyć, a następnie ustawićerror_log
ścieżkę do katalogu, w którym chcesz się zalogować. (Uwaga: nie jest to pełna ścieżka do pliku, tylko do katalogu.)php --info | grep log
skierowało mnie w stronę / var / www / logs, gdzie znajdowały się najnowsze logi.sudo /etc/init.d/apache2 restart
W środowisku LAMP błędy php są domyślnie kierowane do tego pliku poniżej.
Wszystkie dzienniki dostępu znajdują się w:
źródło
Jak znaleźć dziennik błędów PHP w systemie Linux:
Inny równoważny sposób:
źródło
Wygląda na to, że domyślnie php nigdzie nie rejestruje błędów,
error_log
klucz w php.ini jest komentowany we wszystkich instalacjach, które widziałem.Ogólnie ja:
locate php.ini
.Wyszukaj w tych plikach
error_reporting
wartość;Które należy ustawić na dowolną kombinację poziomów logów php. ,
Na przykład:
E_ALL & ~E_DEPRECATED & ~E_STRICT
Sprawdź
error_log
wartość, aby upewnić się, że wskazuje rzeczywiste miejsce i nie jest komentowana.Domyślna wartość nie podaje pełnej ścieżki, tylko nazwę pliku, nie wiem, gdzie ta ścieżka jest normalnie rozpoznawana. Prawdopodobnie
/var/log/
.źródło
Powinieneś użyć ścieżki bezwzględnej podczas ustawiania zmiennej error_log w pliku php.ini, w przeciwnym razie dzienniki błędów będą przechowywane zgodnie z twoją względną ścieżką.
Innym rozwiązaniem byłoby pisanie prostego skryptu, który wyświetlałby wszystkie pliki dzienników błędów z drzewa katalogów.
źródło
Może tak być również w
/var/log/apache2/error.log
przypadku silnika obliczeniowego Google.I możesz zobaczyć ogon w ten sposób:
źródło
Jeśli zbudowałeś Apache i PHP ze źródła, wówczas dzienniki błędów domyślnie są generowane na twoim,
${Apache install dir}/logs/error_log
tj/usr/local/apache2/logs/error_log
. Ogólnie . W przeciwnym razie, jeśli zainstalowałeś go z repozytorium, znajdziesz go w/var/log/apache2/error_log
. Możesz również ustawić ścieżkę w swoimphp.ini
i zweryfikować, wywołującphpinfo()
.źródło
Najlepszym sposobem jest przejrzenie pliku httpd.conf i sprawdzenie, jaka jest wartość domyślna. Może to również zostać zastąpione przez konkretnego wirtualnego hosta. Zaczynam od przeglądania
/etc/httpd/conf/httpd.conf
lub/etc/apache2/httpd.conf
szukania dziennika błędów. Może być wymieniony jako / var / log / httpd / error_log lub/var/log/apache2/error_log
może być również wymieniony jako prostylogs/error_log
.W tym przypadku jest to ścieżka względna, co oznacza, że będzie pod nią
/etc/httpd/logs/error_log
. Jeśli nadal nie możesz go znaleźć, sprawdź na dole pliku httpd.conf i sprawdź, gdzie znajdują się Twoje wirtualne hosty. Może być w /etc/httpd/conf.d/<- jako „inne” lub „dodatkowe”. Twój wirtualny host może to zastąpić za pomocą ErrorLog „/ path / to / error_log”.źródło
Podczas konfigurowania pliku dziennika błędów w php.ini można użyć ścieżki bezwzględnej lub ścieżki względnej. Ścieżka względna zostanie rozstrzygnięta na podstawie położenia skryptu generującego, a otrzymasz plik dziennika w każdym katalogu, w którym znajdują się skrypty. Jeśli chcesz, aby wszystkie komunikaty o błędach były kierowane do tego samego pliku, użyj ścieżki bezwzględnej do plik.
Zobacz więcej tutaj: http://www.php.net/manual/en/ref.errorfunc.php#53025
źródło
NGINX zwykle przechowuje go w /var/log/nginx/error.log lub access.log. (W każdym razie na Ubuntu)
źródło
To jest pomocne. skomentował sjas na pytanie. więc podałem to jako odpowiedź.
źródło
Jeśli używasz dziennika php5-fpm, domyślnie powinno być poniżej
źródło
gdziekolwiek chcesz, jeśli ustawisz, wywołanie funkcji: error_log ($ errorMessageforLog. "\ n", 4, 'somePath / SomeFileName.som');
źródło
Wyszukaj plik httpd.conf,
ErrorLog
uruchamiająccat <file location> | grep ErrorLog
go z wiersza polecenia. Na przykład:Wynik:
Znajdź linię zaczynającą się od,
ErrorLog
a znajdziesz odpowiedź.Uwaga: W przypadku hostów wirtualnych możesz edytować plik hostów wirtualnych,
httpd-vhosts.conf
aby określić inną lokalizację pliku dziennika.źródło
Dzienniki błędów cPanel znajdują się w:
Domyślnie dzienniki Apche znajdują się wewnątrz:
lub
Jeśli ktoś używa niestandardowej lokalizacji dziennika, możesz to sprawdzić, uruchamiając następujące polecenie:
Jeśli pojawia się błąd, że katalog apache2 nie istnieje, możesz uruchomić to polecenie, aby znaleźć poprawną lokalizację poprzez:
lub
źródło
źródło
Jesteś w środowisku udostępniania i nie możesz znaleźć dziennika błędów, zawsze sprawdź, czy cPanel ma opcję Błędy na pulpicie cPanel. Jeśli nie możesz znaleźć dziennika błędów, możesz go tam znaleźć.
Na pasku wyszukiwania cPanel, wyszukaj Błąd, pokaże Strony Błędów, które są w zasadzie listami różnych stron błędów HTTP, a inny Błąd to miejsce, w którym wyświetlane są dzienniki błędów.
Inne miejsca, w których można przeglądać udostępnione środowisko: / home / twoja nazwa użytkownika / logs / home / twoja nazwa użytkownika / public_html / error_log
źródło
coś takiego :
lub
lub
źródło
Wordpress
Wordpress przekieruje
error_log()
wiadomości,/wp-content/debug.log
kiedyWP_DEBUG_LOG
jest ustawiony na true.Zobacz dokumentację Wordpress dla WP_DEBUG_LOG
źródło