How to get a core dump from apache when segfaulting
Solution 1
My answer is this:
Set up the directive as follow
CoreDumpDirectory /tmp/mycoredump
Create the directory:
mkdir -p /tmp/mycoredump
Assign ownership to the directory www-data or httpd
chown -R www-data:www-data /tmp/mycoredump
Set permissions to:
chmod 777 /tmp/mycoredump
Restart Apache:
service apache2 restart
Solution 2
Note that if you have PrivateTmp=true
set in your /usr/lib/systemd/system/apache2.service
(or whatever it's called on your system), meaning Apache actually looks for /tmp
inside something like /tmp/systemd-private-c27fc5b152d546159d675e170641529b-apache2.service-IcEt0m/
, Apache won't be able to write to that dir and you won't get cores dumped at all (due to the systemd
tmp directory having 700 root-only perms).
The solution is to either set PrivateTmp=false
or modify the permission of the systemd tmp directory after the server starts.
I wasted hours on this to only just now finally realize what the problem was.
Related videos on Youtube
Comments
-
chrismcb almost 2 years
I've followed instructions from many locations online on how to get a core dump from apache when it is producing a segfault, but it still refuses to generate the dump.
I have:
- Added the
CoreDumpDirectory
directive into thehttpd.conf
file and set it to/tmp
- Executed
ulimit -c unlimited
- Provided the pattern for dumps using
echo '/tmp/core-%e.%p' > /proc/sys/kernel/core_pattern
- Also ran
echo 0 > /proc/sys/kernel/core_uses_pid
Httpd has been restarted, but still no dumps created.
I'm running CentOS 5.8 x64 with
httpd-2.2.3-65.el5.centos.3
andphp-5.3.20-13.el5.art
Any help would be much appreciated!
-
chrismcb over 11 yearsI've set it to /tmp which is publicly writable, but I'll try somewhere else and give it ownership to apache
-
chrismcb over 11 yearsThanks - that did produce a dump, however not in the place I set it! I set the
CoreDumpDirectory
to/tmp/dumps
and it dumped to/tmp
... now on with debugging -
Valentin Bajrami over 11 yearsGlad you figured it out!
- Added the
-
chrismcb over 11 yearsYes, I did just about that, but it ended up dumping into
/tmp
anyway! -
sendmoreinfo over 11 yearsIt's never a good idea to
chmod 777
anything -
avgvstvs almost 9 years@sendmoreinfo But what if your use case is making something fully modifiable and executable to the outside world? ;-)
-
sendmoreinfo almost 9 yearsYou are allowed to shoot yourself in the foot, just don't preach this.
-
3ventic about 4 yearsOh you have no idea how many hours I've wasted on this. Thanks for posting your answer!
-
Cerin over 3 yearsIf I run these, it kills Apache and makes it unable to start... CoreDumpDirectory does not appear to be a valid Apache directive.