Penso che il mio server sia diventato lento da quando ho installato XDebug. Quindi, per testare la mia ipotesi, voglio disabilitare completamente XDebug. Ho cercato tutorial su come farlo ma non riesco a trovare tali informazioni.
Penso che il mio server sia diventato lento da quando ho installato XDebug. Quindi, per testare la mia ipotesi, voglio disabilitare completamente XDebug. Ho cercato tutorial su come farlo ma non riesco a trovare tali informazioni.
Risposte:
Trova il tuo php.ini
e cerca XDebug.
Imposta xdebug autostart su false
xdebug.remote_autostart=0
xdebug.remote_enable=0
Disabilita il tuo profiler
xdebug.profiler_enable=0
Nota che ci può essere una perdita di prestazioni anche con xdebug disabilitato ma caricato . Per disabilitare il caricamento dell'estensione stessa, devi commentarla nel tuo php.ini. Trova una voce simile a questa:
zend_extension = "/path/to/php_xdebug.dll"
e metti un ;
per commentarlo, ad es ;zend_extension = …
.
Dai un'occhiata a questo post XDebug, come disabilitare il debug remoto per un singolo file .php?
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
da /etc/php5/conf.d/xdebug.ini
. Tuttavia né nelle righe /usr/lib/php5
né nelle /etc
righe specificate nella risposta sono disponibili.
Una soluzione semplice che funziona su distribuzioni Linux simili a Ubuntu
sudo php5dismod xdebug
sudo service apache2 restart
$ sudo phpdismod xdebug
Nella distribuzione Linux Ubuntu ( forse anche un'altra - non è testata ) con PHP 5 a bordo, puoi usare:
sudo php5dismod xdebug
E con PHP 7
sudo phpdismod xdebug
Dopodiché, riavvia il server:
sudo service apache2 restart
Inoltre, puoi aggiungere xdebug_disable()
al tuo codice. Provare:
if(function_exists('xdebug_disable')) { xdebug_disable(); }
Ho rinominato il file di configurazione e riavviato il server:
$ mv /etc/php/7.0/fpm/conf.d/20-xdebug.ini /etc/php/7.0/fpm/conf.d/20-xdebug.ini.bak
$ sudo service php7.0-fpm restart && sudo service nginx restart
Ha funzionato per me.
Commenta l'estensione in php.ini e riavvia Apache. Ecco un semplice script (puoi assegnare un collegamento ad esso)
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');
in xubuntu ho completamente disabilitato xdebug per la CLI con questo ...
sudo rm /etc/php5/cli/conf.d/*xdebug*
/etc/php5/cli/conf.d/20-xdebug.ini
passthru
funzione con xdebug abilitato, xdebug potrebbe bloccarsi e interrompere l'esecuzione.
unlink
sopra rm
se è disponibile.
sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
e commentarlo.
Su Windows (WAMP) nel file ini della CLI:
X:\wamp\bin\php\php5.x.xx\php.ini
riga di commento
; XDEBUG Extension
;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"
Apache elaborerà xdebug
e il compositore no.
Trova il tuo PHP.ini e cerca XDebug.
normalmente in Ubuntu il suo percorso è
/etc/php5/apache2/php.ini
Apporta le seguenti modifiche (meglio commentarle semplicemente aggiungendo; all'inizio)
xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0
quindi riavvia nuovamente il server per Ubuntu
sudo service apache2 restart
Disabilita xdebug
Per PHP 7: sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
Per PHP 5: sudo nano /etc/php5/cli/conf.d/20-xdebug.ini
Quindi commenta tutto e salva.
AGGIORNAMENTO - Disabilita solo per CLI
Secondo il commento di @ igoemon, questo è un metodo migliore:
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
Nota: aggiorna il percorso alla tua versione di PHP.
grep -r "xdebug" /etc/php/
Questo potrebbe produrre versioni diverse, in tal caso corri php -v
per trovare la tua versione.
sudo vi /etc/php/5.6/mods-available/xdebug.ini
//zend_extension=xdebug.so
Se stai usando php-fpm
quanto segue dovrebbe essere sufficiente:
sudo phpdismod xdebug
sudo service php-fpm restart
Nota che dovrai modificarlo a seconda della tua versione di php. Ad esempio eseguendo php 7.0 faresti:
sudo phpdismod xdebug
sudo service php7.0-fpm restart
Dato che stai eseguendo php-fpm, non dovrebbe essere necessario riavviare il server web effettivo. In ogni caso, se non usi fpm, potresti semplicemente riavviare il tuo server web usando uno dei seguenti comandi:
sudo service apache2 restart
sudo apache2ctl restart
Ho riscontrato un problema simile. A volte, non troverai xdebug.so in php.ini. In tal caso, esegui phpinfo()
in un file php e controlla Additional .ini files parsed
. Qui vedrai più file ini. Uno di questi sarà il file ini di xdebug. Basta rimuovere (o rinominare) questo file, riavviare Apache e questa estensione verrà rimossa.
Se stai usando MAMP Pro su Mac OS X, è fatto tramite il client MAMP deselezionando Attiva Xdebug nella scheda PHP :
Quindi, sì, tutto ciò di cui hai bisogno, solo una riga di commento in un file INI simile zend_extension=xdebug.so
o simile.
È possibile creare commenti aggiungendo punto e virgola.
Ma questo tipo di risposta è già stato aggiunto e mi piacerebbe condividere la soluzione pronta per cambiare lo stato di Xdebug.
Ho creato un commutatore rapido per Xdebug. Forse sarebbe utile per qualcuno.
Per WAMP, fare clic con il pulsante sinistro del mouse sull'icona Wamp nella barra delle applicazioni della barra delle applicazioni. Passa il mouse su PHP, quindi fai clic su php.ini e aprilo nel tuo editor di testo.
Ora cerca la frase "zend_extension" e aggiungi; (punto e virgola) davanti.
Riavvia il WAMP e sei a posto.
Stack Apache / 2.4.33 (Win64) PHP / 7.2.4 myHomeBrew
Alla fine di php.ini utilizzo quanto segue per gestire Xdebug da utilizzare con 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
Ispirato da PHPStorm, fai clic con il pulsante destro del mouse su un file -> debug -> ...
www-data@3bd1617787db:~/symfony$
php
-dxdebug.remote_enable=0
-dxdebug.remote_autostart=0
-dxdebug.default_enable=0
-dxdebug.profiler_enable=0
test.php
la cosa importante è -dxdebug.remote_enable=0 -dxdebug.default_enable=0
Ho creato questo script bash per attivare xdebug. Penso che dovrebbe funzionare almeno su Ubuntu / Debian. Questo è per PHP7 +. Per PHP5 usa php5dismod / php5enmod.
#!/bin/bash
#
# Toggles xdebug
#
if [ ! -z $(php -m | grep "xdebug") ] ; then
phpdismod xdebug
echo "xdebug is now disabled"
else
phpenmod xdebug
echo "xdebug is now enabled"
fi
# exit success
exit 0
Disabilita xdebug solo per alcune versioni di PHP o sapi. In questo caso PHP 7.2 fpm
sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart