Retrouver le script PHP utilisé par un processus Apache2

lostintraslationofphp
Invité n'ayant pas de compte PHPfrance

01 avr. 2010, 10:31

Bonjour,

En ce moment je cherche a trouver une solution pour connaitre quelle script PHP est utilisé par un processus Apache.

Si je fait un ps -ef | grep apache2 par exemple :

apache 31689 31676 0 12:06 ? 00:00:00 /usr/sbin/apache2 -D PHP5 -D INFO -D LANGUAGE -D LDAP -D AUTH_LDAP -D UMASK -D STATUS -d /usr/lib/apache2 -f /etc/apache2/httpd.conf -k start

Mais cela n indique en rien quelle script est en cours d exécution.

Je suis loin d être un expert PHP ou apache, mais l idée c est juste de trouver quelle script plante et fait prendre des ressources CPU a un processus apache.

Fabien

ViPHP
ViPHP | 2287 Messages

01 avr. 2010, 14:36

Bonjour,

Je ne pense pas que tu puisses t'y prendre dans ce sens là (faire dire à apache quel script php est actuellement éxécuté).

Par contre l'inverse est possible (faire dire à un script php quel est son PID courant, qui est identique à celui du process apache si php est lancé en tant que module) : http://www.php.net/manual/en/function.posix-getpid.php
if(!@work()){ Nespresso(); } else { what(); }
______________________________

devlop78
Invité n'ayant pas de compte PHPfrance

01 avr. 2010, 14:56

Ca ne t'empêche pas de killer un processus trop gourmand même si tu ne sais pas qui c'est ... Et si tu utilises SuExec, SuPhp des trucs comme ça, tu peux aussi savoir quel utilisateur se fait hacker (j'imagine que si ta config apache et php est bien faite, un seul script en exécution ne peut pas mettre ton serveur KO, c'est donc que qqn s'amuse derrière ...)

Petit nouveau ! | 1 Messages

06 avr. 2010, 17:13

Bonjour,

Merci pour vos deux réponds, il trop de scripts a reprendre pour utiliser la fonction posix_getpid.
Dommage peut être dans une nouvelles plateformes, bonne idée a mettre en place.
Âpres, il pas de hacking les scripts sont reelement bugés :D .

Je vais continuer a killer les process Apaches et a deviner quelle script a planté.

Merci encore pour vos reponses,

Fabien

Mammouth du PHP | 881 Messages

06 avr. 2010, 18:54

Si t'as un page qui appelle plusieurs scripts, tu peux insérer des messages entre chaque appel et voir à l'écran où en est la progression de la page principal avant que le CPU ne se mette à rougir. Quand le ventilateur du CPU s'énerve ... regarde la dernière indication à l'écran et tu devrais trouver ton script mangeur de CPU dans la commande suivante.

Pour cela, j'en conviens, il faut avoir d'avance une idée d'où est le problème.
Soyez artisans de paix

ViPHP
ViPHP | 1136 Messages

06 avr. 2010, 22:34

Dans un premier temps , check les logs ...

error_log et access_log

Ch.

ViPHP
ViPHP | 1136 Messages

06 avr. 2010, 22:38

Sinon , tu as peut être memtrack qui peut t'aider

http://fr2.php.net/manual/fr/intro.memtrack.php

Pour la conf tout se passe dans le php.ini :

http://fr2.php.net/manual/fr/memtrack.ini.php

Ch.