15 votes

Comment obtenir un core dump d'Apache en cas de défaut de ségrégation ?

J'ai suivi les instructions de nombreux sites en ligne sur la façon d'obtenir un core dump d'Apache lorsqu'il produit un segfault, mais il refuse toujours de générer le dump.

Je l'ai fait :

  1. Ajouté le CoreDumpDirectory dans la directive httpd.conf et lui attribuer la valeur /tmp
  2. E ulimit -c unlimited
  3. Fourni le modèle pour echo '/tmp/core-%e.%p' > /proc/sys/kernel/core_pattern
  4. A echo 0 > /proc/sys/kernel/core_uses_pid

Httpd a été redémarré, mais toujours pas de dumps créés.

Je fonctionne sous CentOS 5.8 x64 avec httpd-2.2.3-65.el5.centos.3 y php-5.3.20-13.el5.art

Toute aide serait très appréciée !

7voto

Valentin Bajrami Points 3715

Ma réponse est la suivante :

  1. Configurez la directive comme suit

    CoreDumpDirectory /tmp/mycoredump

  2. Créer le répertoire :

    mkdir -p /tmp/mycoredump

  3. Attribuer la propriété du répertoire www-data ou httpd

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

  4. Définir les permissions pour :

    chmod 777 /tmp/mycoredump

  5. Redémarrez Apache :

    service apache2 restart

2voto

Svend Points 3291

Notez que si vous avez PrivateTmp=true dans votre /usr/lib/systemd/system/apache2.service (ou quel que soit son nom sur votre système), ce qui signifie qu'Apache recherche en fait /tmp à l'intérieur de quelque chose comme /tmp/systemd-private-c27fc5b152d546159d675e170641529b-apache2.service-IcEt0m/ Apache ne pourra pas écrire dans ce répertoire et vous n'obtiendrez pas de vidage de cœurs du tout (en raison de l'option systemd tmp contenant 700 perms pour l'utilisateur root uniquement).

La solution consiste à définir PrivateTmp=false ou modifier les permissions du répertoire systemd tmp après le démarrage du serveur.

J'ai passé des heures sur ce dossier pour finalement réaliser le problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X