セグメンテーション違反時にApacheからコアダンプを取得する方法


12

segfaultを生成しているときにApacheからコアダンプを取得する方法について、多くの場所からオンラインで指示に従いましたが、それでもダンプの生成は拒否されます。

私が持っています:

  1. ファイルにCoreDumpDirectoryディレクティブを追加し、httpd.conf設定します/tmp
  2. 実行済み ulimit -c unlimited
  3. を使用してダンプのパターンを提供しました echo '/tmp/core-%e.%p' > /proc/sys/kernel/core_pattern
  4. また走った echo 0 > /proc/sys/kernel/core_uses_pid

Httpdは再起動されましたが、まだダンプは作成されていません。

CentOS 5.8 x64を実行しhttpd-2.2.3-65.el5.centos.3ていますphp-5.3.20-13.el5.art

どんな助けでも大歓迎です!


apacheには、CoreDumpDirectoryディレクティブで指定したファイルに書き込む権限がありますか?Apacheが所有する必要があります。
バレンティンバジラミ

公的に書き込み可能な/ tmpに設定しましたが、別の場所で試して、Apacheに所有権を与えます
-chrismcb

ありがとう-それはダンプを生成しましたが、私が設定した場所ではありません!CoreDumpDirectoryto を設定し、... /tmp/dumpsにダンプしました/tmp。今はデバッグ中です
-chrismcb

あなたはそれを理解してくれてうれしいです!
バレンティンバジラミ

回答:


7

私の答えはこれです:

  1. 次のようにディレクティブを設定します

    CoreDumpDirectory /tmp/mycoredump

  2. ディレクトリを作成します。

    mkdir -p /tmp/mycoredump

  3. ディレクトリwww-dataまたはhttpdに所有権を割り当てます

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

  4. 許可を設定します:

    chmod 777 /tmp/mycoredump

  5. Apacheを再起動します。

    service apache2 restart


はい、私はちょうどそれについてやったが、/tmpとにかくダンプになってしまった!
chrismcb

6
それはに良いアイデアことはないchmod 777もの
sendmoreinfo

1
@sendmoreinfoしかし、あなたのユースケースが、外部の世界に対して完全に変更可能で実行可能なものを作っている場合はどうでしょうか?;-)
avgvstvs

8
あなたは自分の足で撃つことが許されています、ただこれを説教しないでください。
sendmoreinfo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.