133 votes

Comment désactiver XDebug

Je pense que mon serveur est devenu lent depuis que j'ai installé XDebug. Donc, afin de tester mon hypothèse, je veux désactiver complètement XDebug. J'ai cherché des tutoriels sur la manière de procéder, mais je n'ai pas trouvé d'informations à ce sujet.

176voto

Uday Sawant Points 2557

Trouvez votre php.ini et cherchez XDebug.

Définir xdebug autostart à false

xdebug.remote_autostart=0  
xdebug.remote_enable=0

Désactiver votre profileur

xdebug.profiler_enable=0

Notez qu'il peut y avoir un perte de performance même avec xdebug désactivé mais chargé . Pour désactiver le chargement de l'extension elle-même, vous devez la commenter dans votre php.ini. Trouvez une entrée ressemblant à ceci :

zend_extension = "/path/to/php_xdebug.dll"

et mettre un ; pour le commenter, par exemple ;zend_extension = … .

Consultez ce post XDebug, comment désactiver le débogage à distance pour un seul fichier .php ?

0 votes

Merci. J'ai découvert que mon problème était APC, ma mémoire était faible apparemment. Vous avez raison, xdebug fait partie de PHP, pas d'un module d'Apache. Maintenant, tout fonctionne bien.

1 votes

@Uday et si je ne trouve rien de tout cela dans mon php.ini. J'ai vérifié partout dans /etc/php, y compris avec la recherche grep.

0 votes

@HaralanDobrev Vérifiez phpinfo() pour voir si xdebug est effectivement activé. Si c'est le cas, vérifiez si vous avez des fichiers ini supplémentaires attachés au fichier php.ini. De plus, assurez-vous que vous éditez le bon fichier ini. Il est possible d'avoir ces fichiers à plusieurs endroits.

26voto

Zack Katz Points 326

Vous pouvez également ajouter xdebug_disable() à votre code. Essayez :

if(function_exists('xdebug_disable')) { xdebug_disable(); }

36 votes

Cela désactive seulement l'affichage des stacktraces, cela ne désactive pas réellement xdebug (fonction terriblement nommée, je sais).

0 votes

C'est une façon géniale de faire face à de nombreuses situations. Merci pour cela, même si ça ne répond pas vraiment aux besoins de l'OP.

5 votes

@Jake, je ne suis pas sûr que l'OP cherchait un boucher.

11voto

antonpinchuk Points 121

Commentez l'extension dans le php.ini et redémarrez Apache. Voici un simple script (vous pouvez lui attribuer un raccourci)

xdebug-toggle.php

define('PATH_TO_PHP_INI', 'c:/xampp/php/php.ini');
define('PATH_TO_HTTPD', 'c:/xampp/apache/bin/httpd.exe');
define('REXP_EXTENSION', '(zend_extension\s*=.*?php_xdebug)');

$s = file_get_contents(PATH_TO_PHP_INI);
$replaced = preg_replace('/;' . REXP_EXTENSION . '/', '$1', $s);
$isOn = $replaced != $s;
if (!$isOn) {
    $replaced = preg_replace('/' . REXP_EXTENSION . '/', ';$1', $s);
}
echo 'xdebug is ' . ($isOn ? 'ON' : 'OFF') . " now. Restarting apache...\n\n";
file_put_contents(PATH_TO_PHP_INI, $replaced);

passthru(PATH_TO_HTTPD . ' -k restart');

0 votes

Pour vraiment désactiver complètement XDebug, celle-ci est la bonne réponse, voir mon commentaire dans la réponse de @UdaySawant.

5voto

Sumoanand Points 3387

Deux options :

1 : Ajouter le code suivant dans l'initialisation script :

 if (function_exists('xdebug_disable')) {
           xdebug_disable();
         }

2 : Ajoutez le drapeau suivant à php.ini

 xdebug.remote_autostart=0
 xdebug.remote_enable=0

La première option est recommandée.

4voto

jerrymouse Points 3510

J'ai rencontré un problème similaire. Parfois, vous ne trouvez pas xdebug.so dans le php.ini. Dans ce cas, exécutez phpinfo() dans un fichier php et vérifier que Additional .ini files parsed . Ici, vous verrez d'autres fichiers ini. L'un d'entre eux sera le fichier ini de xdebug. Il suffit de supprimer (ou de renommer) ce fichier, de redémarrer apache, et cette extension sera supprimée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X