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.
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?
Une solution simple fonctionnant sur des distributions Linux similaires à Ubuntu
Sudo php5dismod xdebug
Sudo service Apache2 restart
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
En outre, vous pouvez ajouter xdebug_disable()
à votre code. Essayer:
if(function_exists('xdebug_disable')) { xdebug_disable(); }
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.
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');
dans xubuntu, j'ai totalement désactivé xdebug pour la CLI avec cette ...
Sudo rm /etc/php5/cli/conf.d/*xdebug*
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.
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.
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
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.
(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.
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.
Sudo vi /etc/php/5.6/mods-available/xdebug.ini
//zend_extension=xdebug.so
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é.
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.
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
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.
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.
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
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:
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