Wie bekomme ich einen Core-Dump von Apache beim Segfaulting?

12

Ich habe Anweisungen von vielen Online-Standorten befolgt, wie ein Core-Dump von Apache erstellt werden kann, wenn ein Segfault erzeugt wird, aber er weigert sich immer noch, den Dump zu generieren.

Ich habe:

  1. Fügte die CoreDumpDirectoryDirektive in die httpd.confDatei ein und stellte sie auf/tmp
  2. Hingerichtet ulimit -c unlimited
  3. Bereitgestellt das Muster für Dumps mit echo '/tmp/core-%e.%p' > /proc/sys/kernel/core_pattern
  4. Lief auch echo 0 > /proc/sys/kernel/core_uses_pid

Httpd wurde neu gestartet, es wurden jedoch noch keine Speicherauszüge erstellt.

Ich verwende CentOS 5.8 x64 mit httpd-2.2.3-65.el5.centos.3undphp-5.3.20-13.el5.art

Jede Hilfe wäre sehr dankbar!

chrismcb
quelle
Hat Apache eine Berechtigung zum Schreiben in die Datei, die Sie in der CoreDumpDirectory-Direktive angegeben haben? Es sollte im Besitz von Apache sein.
Valentin Bajrami
Ich habe es auf / tmp gesetzt, was öffentlich beschreibbar ist, aber ich werde es an einer anderen Stelle versuchen und es Apache
chrismcb geben.
Danke - das hat einen Dump erzeugt, aber nicht an der Stelle, an der ich ihn gesetzt habe! Ich habe den CoreDumpDirectory/tmp/dumps/tmp
Wert
Schön, dass du es herausgefunden hast!
Valentin Bajrami

Antworten:

7

Meine Antwort lautet:

  1. Richten Sie die Direktive wie folgt ein

    CoreDumpDirectory /tmp/mycoredump

  2. Erstellen Sie das Verzeichnis:

    mkdir -p /tmp/mycoredump

  3. Weisen Sie dem Verzeichnis www-data oder httpd den Eigentümer zu

    chown -R www-data:www-data /tmp/mycoredump

  4. Festlegen von Berechtigungen auf:

    chmod 777 /tmp/mycoredump

  5. Starten Sie Apache neu:

    service apache2 restart

Valentin Bajrami
quelle
Ja, ich habe genau das getan, aber am Ende ist es /tmptrotzdem reingekommen!
Chrismcb
6
Es ist nie eine gute Idee für chmod 777irgendetwas
sendmoreinfo
1
@sendmoreinfo Aber was ist, wenn Ihr Anwendungsfall etwas für die Außenwelt vollständig änderbar und ausführbar macht? ;-)
avgvstvs
8
Du darfst dir in den Fuß schießen, predige das nur nicht.
Sendmoreinfo