web-dev-qa-db-fra.com

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 XDebug complètement. Je cherchais des tutoriels sur la façon de procéder mais je ne trouve pas ces informations.

110
Beto Aveiga

Trouvez votre php.ini et cherchez XDebug.

Définissez xdebug autostart sur 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 le commenter dans votre php.ini. Trouvez une entrée qui ressemble à ceci:

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

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

Découvrez cet article XDebug, comment désactiver le débogage distant pour un fichier .php unique?

141
Uday Sawant

Une solution simple fonctionnant sur des distributions Linux similaires à Ubuntu

Sudo php5dismod xdebug
Sudo service Apache2 restart
93
Arvi Võime

Dans Linux Ubunt ( peut-être aussi un autre - ce n'est pas testé ) distribution avec PHP 5 à bord , vous pouvez utiliser:

Sudo php5dismod xdebug

Et avec PHP 7

Sudo phpdismod xdebug

Et après cela, veuillez redémarrer le serveur:

Sudo service Apache2 restart
32
kkochanski

En outre, vous pouvez ajouter xdebug_disable() à votre code. Essayer:

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

23
Zack Katz

J'ai renommé le fichier de configuration et redémarré le serveur:

$ mv /etc/php/7.0/fpm/conf.d/20-xdebug.ini /etc/php/7.0/fpm/conf.d/20-xdebug.i

$ Sudo service php7.0-fpm restart && Sudo service nginx restart

Cela a fonctionné pour moi.

12
Sinan Eldem

Commentez l'extension dans le fichier php.ini et redémarrez Apache. Voici un script simple (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');
10
antonpinchuk

dans xubuntu, j'ai totalement désactivé xdebug pour la CLI avec cette ...

Sudo rm /etc/php5/cli/conf.d/*xdebug*
9
Artistan

Sous Windows (WAMP) dans le fichier ini de la CLI:

X:\wamp\bin\php\php5.x.xx\php.ini

ligne de commentaire

; XDEBUG Extension

;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"

Apache traitera xdebug et composer ne le fera pas.

7
Vladimir Vukanac

Désactive xdebug

Pour PHP 7: Sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini

Pour PHP 5: Sudo nano /etc/php5/cli/conf.d/20-xdebug.ini

Puis commentez tout et économisez.


PDATE - Désactiver pour CLI uniquement

Selon le commentaire de @ igoemon, c'est une meilleure méthode:

PHP 7.0 (NGINX)

Sudo mv /etc/php/7.0/cli/conf.d/20-xdebug.ini /etc/php/7.0/cli/conf.d/20-xdebug.ini.old
Sudo service nginx restart

Note: Mettez à jour le chemin vers votre version de PHP.

4
Justin

Recherchez votre fichier PHP.ini et recherchez XDebug.

normalement dans Ubuntu son chemin est

/etc/php5/Apache2/php.ini  

Apportez les modifications suivantes (Mieux vaut simplement les commenter en ajoutant; au début)

xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0

puis redémarrez votre serveur pour Ubuntu

Sudo service Apache2 restart
4
Shadab Salam

Deux options:

1: Ajoutez le code suivant dans le script d'initialisation:

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

2: Ajouter le drapeau suivant à php.ini

 xdebug.remote_autostart=0
 xdebug.remote_enable=0

La 1ère option est recommandée.

4
Sumoanand

(Ceci est pour CentOS)

Renommez le fichier de configuration et redémarrez Apache.

Sudo mv /etc/php.d/xdebug.ini /etc/php.d/xdebug.ini.old
Sudo service httpd restart

Faites l'inverse pour réactiver.

3
crmpicco

Ubuntu 16.04 supprime xdebug de PHP.

Recherchez votre fichier php.ini et assurez-vous que xdebug est présent:

grep -r "xdebug" /etc/php/

Cela pourrait donner lieu à différentes versions. Si c'est le cas, exécutez php -v pour trouver votre version.

Editez le fichier php.ini, comme ceci:

Sudo vi /etc/php/5.6/mods-available/xdebug.ini

Commentez la ligne:

//zend_extension=xdebug.so

Sauvegarder le fichier

3
Andrew Atkinson

J'ai eu le problème suivant: même si je mets

xdebug.remote_enable=0 

Xdebug-Error-Message-Decoration a été affiché.

Ma solution:

xdebug.default_enable=0

Seulement si j'utilise ce drapeau, Xdebug a été désactivé.

3
suther

J'ai rencontré un problème similaire. Parfois, vous ne trouverez pas xdebug.so dans php.ini. Dans ce cas, exécutez phpinfo() dans un fichier php et recherchez Additional .ini files parsed. Ici, vous verrez plus de fichiers ini. L'un d'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.

3
jerrymouse

Si vous utilisez php-fpm, les éléments suivants devraient suffire:

Sudo phpdismod xdebug
Sudo service php-fpm restart

Notez que vous devrez modifier cela en fonction de votre version de php. Par exemple, en exécutant PHP 7.0, vous feriez:

Sudo phpdismod xdebug
Sudo service php7.0-fpm restart

Puisque vous utilisez php-fpm, il n’est pas nécessaire de redémarrer le serveur Web actuel. Dans tous les cas, si vous n'utilisez pas fpm, vous pouvez simplement redémarrer votre serveur Web en utilisant l'une des commandes ci-dessous:

Sudo service Apache2 restart
Sudo Apache2ctl restart
2
Cyclonecode

Pour WAMP, cliquez avec le bouton gauche de la souris sur l'icône Wamp dans la barre des tâches. Survolez PHP puis cliquez sur php.ini et ouvrez-le dans votre éditeur de texte.

Maintenant, recherchez la phrase 'zend_extension' et ajoutez; (point-virgule) devant.

Redémarrez le WAMP et vous êtes prêt à partir.

1
bantya

Donc, oui, tout ce dont vous avez besoin, il suffit de commenter la ligne dans le fichier INI comme zend_extension=xdebug.so ou similaire.

Les commentaires peuvent être faits en ajoutant un point-virgule.

Mais, ce genre de réponse a déjà été ajouté, et je voudrais partager une solution prête à changer de statut Xdebug.

J'ai créé un sélecteur rapide pour Xdebug. Peut-être que ce serait utile pour quelqu'un.

Xdebug Switcher

1
Kirby

Apache/2.4.33 (Win64) PHP/7.2.4 pile myHomeBrew

À la fin du fichier php.ini, j’utilise ce qui suit pour gérer Xdebug pour l’utiliser avec PhpStorm

; jch ~ Sweet analizer at https://xdebug.org/wizard.php for matching xdebug to php version.
; jch ~ When upgrading php versions check if newer xdebug.dll is needed in ext directory.
; jch Renamed... zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug-2.6.0-7.2-vc15-x86_64.dll

zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug.dll

; jch !!!! Added the following for Xdebug with PhpStorm

[Xdebug]
; zend_extension=<full_path_to_xdebug_extension>
; xdebug.remote_Host=<the Host where PhpStorm is running (e.g. localhost)>
; xdebug.remote_port=<the port to which Xdebug tries to connect on the Host where PhpStorm is running (default 9000)>

xdebug.remote_enable=1
xdebug.remote_Host=localhost
xdebug.remote_port=9000

xdebug.profiler_enable=1
xdebug.profiler_output_dir="E:\x64Stack\Xdebug_profiler_output"
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=1

; jch ~~~~~~~~~To turn Xdebug off(disable) uncomment the following 3 lines restart Apache~~~~~~~~~ 
;xdebug.remote_autostart=0  
;xdebug.remote_enable=0
;xdebug.profiler_enable=0

; !!! Might get a little more speed by also commenting out this line above... 
;;; zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug.dll
; so that Xdebug is both disabled AND not loaded
1
Jim

Si vous utilisez MAMP Pro sous Mac OS X, cela se fait via le client MAMP en décochant Activer Xdebug sous l'onglet PHP:

Disabling Xdebug in MAMP Pro

1
Casper André Casse

Inspiré par PHPStorm, faites un clic droit sur un fichier -> debug -> ...

www-data@3bd1617787db:~/symfony$ 
php 
-dxdebug.remote_enable=0 
-dxdebug.remote_autostart=0 
-dxdebug.default_enable=0 
-dxdebug.profiler_enable=0 
test.php

le plus important est -dxdebug.remote_enable=0 -dxdebug.default_enable=0

0
max4ever