Cara mendapatkan dump inti dari apache saat melakukan segfaulting

12

Saya telah mengikuti instruksi dari banyak lokasi online tentang cara mendapatkan dump inti dari apache ketika memproduksi segfault, tetapi masih menolak untuk menghasilkan dump.

Saya sudah:

  1. Menambahkan CoreDumpDirectoryarahan ke dalam httpd.conffile dan mengaturnya/tmp
  2. Dieksekusi ulimit -c unlimited
  3. Disediakan pola untuk dump menggunakan echo '/tmp/core-%e.%p' > /proc/sys/kernel/core_pattern
  4. Juga berlari echo 0 > /proc/sys/kernel/core_uses_pid

Httpd telah dimulai ulang, tetapi masih belum ada dump yang dibuat.

Saya menjalankan CentOS 5.8 x64 dengan httpd-2.2.3-65.el5.centos.3danphp-5.3.20-13.el5.art

Bantuan apa pun akan sangat dihargai!

chrismcb
sumber
Apakah apache memiliki izin untuk menulis ke file yang Anda tentukan dalam arahan CoreDumpDirectory? Itu harus dimiliki oleh apache.
Valentin Bajrami
Saya telah mengaturnya ke / tmp yang dapat ditulis untuk umum, tetapi saya akan mencoba di tempat lain dan memberikannya ke apache
chrismcb
Terima kasih - itu memang menghasilkan dump, tetapi tidak di tempat saya mengaturnya! Saya mengatur CoreDumpDirectoryke /tmp/dumpsdan itu dibuang ke /tmp... sekarang dengan debugging
chrismcb
Senang Anda menemukan jawabannya!
Valentin Bajrami

Jawaban:

7

Jawaban saya adalah ini:

  1. Atur arahan sebagai berikut

    CoreDumpDirectory /tmp/mycoredump

  2. Buat direktori:

    mkdir -p /tmp/mycoredump

  3. Tetapkan kepemilikan ke direktori www-data atau httpd

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

  4. Tetapkan izin untuk:

    chmod 777 /tmp/mycoredump

  5. Mulai ulang Apache:

    service apache2 restart

Valentin Bajrami
sumber
Ya, saya melakukan hal itu, tetapi akhirnya saya /tmptetap melakukannya!
chrismcb
6
Tidak pernah merupakan ide yang baik untuk chmod 777apa pun
sendmoreinfo
1
@sendmoreinfo Tapi bagaimana jika use case Anda membuat sesuatu yang sepenuhnya dapat dimodifikasi dan dieksekusi ke dunia luar? ;-)
avgvstvs
8
Anda diizinkan menembak diri sendiri, tapi jangan memberitakan hal ini.
sendmoreinfo