Creo que mi servidor se volvió lento desde que instalé XDebug. Entonces, para probar mi hipótesis, quiero deshabilitar XDebug por completo. He estado buscando tutoriales sobre cómo hacer esto, pero no puedo encontrar esa información.
Creo que mi servidor se volvió lento desde que instalé XDebug. Entonces, para probar mi hipótesis, quiero deshabilitar XDebug por completo. He estado buscando tutoriales sobre cómo hacer esto, pero no puedo encontrar esa información.
Respuestas:
Encuentra tu php.ini
y busca XDebug.
Establezca xdebug autostart en false
xdebug.remote_autostart=0
xdebug.remote_enable=0
Desactiva tu perfilador
xdebug.profiler_enable=0
Tenga en cuenta que puede haber una pérdida de rendimiento incluso con xdebug deshabilitado pero cargado . Para deshabilitar la carga de la extensión en sí, debe comentarla en su php.ini. Encuentre una entrada como esta:
zend_extension = "/path/to/php_xdebug.dll"
y poner un ;
comentario, por ejemplo ;zend_extension = …
.
Echa un vistazo a esta publicación XDebug, ¿cómo deshabilitar la depuración remota para un solo archivo .php?
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
desde /etc/php5/conf.d/xdebug.ini
. Sin embargo, ni en /usr/lib/php5
ni en /etc
las líneas especificadas en la respuesta están disponibles.
Una solución fácil que funciona en distribuciones de Linux similares a Ubuntu
sudo php5dismod xdebug
sudo service apache2 restart
$ sudo phpdismod xdebug
En la distribución Linux Ubuntu ( quizás también otra, no está probada ) con PHP 5 a bordo, puede usar:
sudo php5dismod xdebug
Y con PHP 7
sudo phpdismod xdebug
Y después de eso, reinicie el servidor:
sudo service apache2 restart
Además, puede agregar xdebug_disable()
a su código. Tratar:
if(function_exists('xdebug_disable')) { xdebug_disable(); }
Cambié el nombre del archivo de configuración y reinicié el servidor:
$ 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
A mí me funcionó.
Comente la extensión en php.ini y reinicie Apache. Aquí hay un script simple (puede asignarle un acceso directo)
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');
en xubuntu deshabilité totalmente xdebug para la CLI con esto ...
sudo rm /etc/php5/cli/conf.d/*xdebug*
/etc/php5/cli/conf.d/20-xdebug.ini
passthru
función con xdebug habilitado, xdebug podría bloquearse y detener la ejecución.
unlink
más rm
si está disponible.
sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
y lo comentaría.
En Windows (WAMP) en el archivo CLI ini:
X:\wamp\bin\php\php5.x.xx\php.ini
línea de comentarios
; XDEBUG Extension
;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"
Apache procesará xdebug
y el compositor no.
Encuentra tu PHP.ini y busca XDebug.
normalmente en Ubuntu su camino es
/etc/php5/apache2/php.ini
Realice los siguientes cambios (es mejor solo comentarlos agregando; al principio)
xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0
luego reinicie su servidor nuevamente para Ubuntu
sudo service apache2 restart
Deshabilitar xdebug
Para PHP 7: sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
Para PHP 5: sudo nano /etc/php5/cli/conf.d/20-xdebug.ini
Luego comenta todo y ahorra.
ACTUALIZACIÓN: deshabilitar solo para CLI
Según el comentario de @ igoemon, este es un mejor método:
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: Actualice la ruta a su versión de PHP.
grep -r "xdebug" /etc/php/
Esto puede venir con diferentes versiones, si es así, ejecute php -v
para encontrar su versión.
sudo vi /etc/php/5.6/mods-available/xdebug.ini
//zend_extension=xdebug.so
Si está utilizando php-fpm
lo siguiente debería ser suficiente:
sudo phpdismod xdebug
sudo service php-fpm restart
Tenga en cuenta que deberá ajustar esto dependiendo de su versión de php. Por ejemplo, ejecutar php 7.0 haría:
sudo phpdismod xdebug
sudo service php7.0-fpm restart
Como está ejecutando php-fpm, no debería ser necesario reiniciar el servidor web real. En cualquier caso, si no utiliza fpm, simplemente puede reiniciar su servidor web utilizando cualquiera de los siguientes comandos:
sudo service apache2 restart
sudo apache2ctl restart
Me encontré con un problema similar. A veces, no encontrarás xdebug.so en php.ini. En cuyo caso, ejecutar phpinfo()
en un archivo php y verificar Additional .ini files parsed
. Aquí verás más archivos ini. Uno de ellos será el archivo ini de xdebug. Simplemente elimine (o cambie el nombre) de este archivo, reinicie apache y se eliminará esta extensión.
Si está utilizando MAMP Pro en Mac OS X, se realiza a través del cliente MAMP desmarcando Activar Xdebug en la pestaña PHP :
Entonces, sí, todo lo que necesita, solo comente una línea en el archivo INI como zend_extension=xdebug.so
o similar.
Los comentarios pueden hacerse agregando punto y coma.
Pero, ese tipo de respuesta ya se agregó, y me gustaría compartir una solución lista para cambiar el estado de Xdebug.
He hecho un cambio rápido para Xdebug. Tal vez sería útil para alguien.
Para WAMP, haga clic con el botón izquierdo en el icono de Wamp en la bandeja de la barra de tareas. Pase el mouse sobre PHP y luego haga clic en php.ini y ábralo en su editor de texto.
Ahora, busque la frase 'zend_extension' y agregue; (punto y coma) delante.
Reinicia el WAMP y listo.
Apache / 2.4.33 (Win64) PHP / 7.2.4 pila myHomeBrew
Al final de php.ini utilizo lo siguiente para administrar Xdebug para usar 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
Inspirado por PHPStorm, haga clic derecho en un archivo -> depurar -> ...
www-data@3bd1617787db:~/symfony$
php
-dxdebug.remote_enable=0
-dxdebug.remote_autostart=0
-dxdebug.default_enable=0
-dxdebug.profiler_enable=0
test.php
lo importante es -dxdebug.remote_enable=0 -dxdebug.default_enable=0
Creé este script bash para alternar xdebug. Creo que debería funcionar al menos en Ubuntu / Debian. Esto es para PHP7 +. Para PHP5 use 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
Deshabilite xdebug solo para ciertas versiones de PHP o sapi. En este caso PHP 7.2 fpm
sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart