2012-04-24 15 views
15

Następujące ustawienia to Xampp 1.7.7 i tutaj jest informacja o wszystkim w tym pakiecie: - Apache/2.2.21 (Win32) mod_ssl/2.2. 21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1APACHE Crashing: Parent: proces potomny zakończony ze statusem 3221225477 - Restartowanie

Używam serwera na 32-bitowym systemie operacyjnym Windows XP SP3, 4 gigabajty pamięci RAM, Quad Core.

Problem mam w moim pliku dziennika błędów apache jest:

[Tue Apr 24 15:55:55 2012] [notice] Parent: child process exited with status 3221225477 -- Restarting. 
[Tue Apr 24 15:55:57 2012] [notice] Digest: generating secret for digest authentication ... 
[Tue Apr 24 15:55:57 2012] [notice] Digest: done 
[Tue Apr 24 15:55:59 2012] [notice] Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations 
[Tue Apr 24 15:55:59 2012] [notice] Server built: Sep 10 2011 11:34:11 
[Tue Apr 24 15:55:59 2012] [notice] Parent: Created child process 776 
[Tue Apr 24 15:56:00 2012] [notice] Disabled use of AcceptEx() WinSock2 API 
[Tue Apr 24 15:56:01 2012] [notice] Digest: generating secret for digest authentication ... 
[Tue Apr 24 15:56:01 2012] [notice] Digest: done 
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Child process is running 
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Acquired the start mutex. 
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Starting 350 worker threads. 
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Listening on port 443. 
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Listening on port 80. 

ten wydaje się występować sporadycznie przez cały dzień i nawet spróbował wykorzystać Win32DisableEx, EnableIMAP Off i EnableSendFile wyłączyć w pliku conf apache . Próbowałem również skopiować plik libmysql.dll do folderów system32 i apache/bin bezskutecznie.

Jeśli ktoś wie, z innych powodów, ten błąd dla procesu potomnego, który zakończył działanie i spowodował awarię Apache, informacje byłyby bardzo mile widziane. Jeśli potrzebujesz dodatkowych plików dziennika, daj mi znać.

Tks, Shane.

Odpowiedz

19

Kod błędu 3221225477 jest 0xC0000005 w hex, która w systemie Windows jest:

#define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xC0000005L) 

naruszenie Dostęp jest wersja Windows' z «winy segmentacji», który powiedział po prostu oznacza, że ​​program próbował uzyskać dostęp do pamięci, które nie jest przydzielone. Może się tak zdarzyć z wielu różnych powodów, ale najczęściej (jeśli nie zawsze) jest błąd w programie.

Teraz moje przypuszczenie dla danej sytuacji jest to, że tam jest albo błąd w PHP lub w jednym z rozszerzeń PHP lub Perl lub niektórych aplikacji Perl. Sam Apache jest zwykle bardzo stabilny, ale jeśli użyjesz jakiegoś nietypowego rozszerzenia, może to być również przyczyną.

Sugerowałbym aktualizację całej konfiguracji do najnowszych wersji. Jeśli chcesz na pewno znaleźć źródło problemu, uruchom Apache w debugerze, takim jak Visual Studio lub OllyDbg. Kiedy wystąpi wyjątek (naruszenie zasad dostępu), przestanie on wykonywać (zamiast restartować), a zobaczysz, w którym module to się znajduje.

Zobacz także dziennik dostępu, jeśli istnieje podejrzenie o tym samym sygnaturze czasowej co błąd. Ale może się zdarzyć, że awaria nastąpi, zanim żądanie zostanie zapisane w pliku dziennika.

Powiązane problemy