Acho que meu servidor ficou lento desde que instalei o XDebug. Então, para testar minha hipótese, quero desativar o XDebug completamente. Estive procurando por tutoriais sobre como fazer isso, mas não consigo encontrar essas informações.
Acho que meu servidor ficou lento desde que instalei o XDebug. Então, para testar minha hipótese, quero desativar o XDebug completamente. Estive procurando por tutoriais sobre como fazer isso, mas não consigo encontrar essas informações.
Respostas:
Encontre o seu php.ini
e procure o XDebug.
Defina xdebug autostart como false
xdebug.remote_autostart=0
xdebug.remote_enable=0
Desative seu criador de perfil
xdebug.profiler_enable=0
Observe que pode haver uma perda de desempenho mesmo com o xdebug desativado, mas carregado . Para desativar o carregamento da extensão em si, você precisa comentá-la no seu php.ini. Encontre uma entrada parecida com esta:
zend_extension = "/path/to/php_xdebug.dll"
e coloque um ;
para comentar, por exemplo ;zend_extension = …
.
Confira este post no XDebug, como desativar a depuração remota para um único arquivo .php?
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
de /etc/php5/conf.d/xdebug.ini
. No entanto, nem nas /usr/lib/php5
nem nas /etc
linhas especificadas na resposta estão disponíveis.
Uma solução fácil trabalhando em distribuições Linux semelhantes ao Ubuntu
sudo php5dismod xdebug
sudo service apache2 restart
$ sudo phpdismod xdebug
Na distribuição Linux Ubuntu ( talvez também outra - não foi testada ) com o PHP 5 a bordo, você pode usar:
sudo php5dismod xdebug
E com o PHP 7
sudo phpdismod xdebug
E depois disso, reinicie o servidor:
sudo service apache2 restart
Além disso, você pode adicionar xdebug_disable()
ao seu código. Experimentar:
if(function_exists('xdebug_disable')) { xdebug_disable(); }
Renomeei o arquivo de configuração e reiniciei o 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
Funcionou para mim.
Comente a extensão no php.ini e reinicie o Apache. Aqui está um script simples (você pode atribuir um atalho a ele)
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');
no xubuntu eu desabilitei totalmente o xdebug para a CLI com isso ...
sudo rm /etc/php5/cli/conf.d/*xdebug*
/etc/php5/cli/conf.d/20-xdebug.ini
passthru
função com o xdebug ativado, o xdebug pode travar e interromper a execução.
unlink
mais rm
se estiver disponível.
sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
e comentar.
No Windows (WAMP) no arquivo CLI ini:
X:\wamp\bin\php\php5.x.xx\php.ini
linha de comentário
; XDEBUG Extension
;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"
O Apache processará xdebug
e o compositor não.
Encontre o seu PHP.ini e procure o XDebug.
normalmente no Ubuntu seu caminho é
/etc/php5/apache2/php.ini
Faça as seguintes alterações (é melhor apenas comentá-las adicionando; no início)
xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0
depois reinicie o servidor novamente para o Ubuntu
sudo service apache2 restart
Desativar xdebug
Para o PHP 7: sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
Para o PHP 5: sudo nano /etc/php5/cli/conf.d/20-xdebug.ini
Em seguida, comente tudo e salve.
UPDATE - Desativar apenas para CLI
De acordo com o comentário do @ igoemon, este é um método melhor:
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: Atualize o caminho para sua versão do PHP.
grep -r "xdebug" /etc/php/
Isso pode resultar em versões diferentes, se for o caso, execute php -v
para encontrar sua versão.
sudo vi /etc/php/5.6/mods-available/xdebug.ini
//zend_extension=xdebug.so
Se você estiver usando, php-fpm
o seguinte deve ser suficiente:
sudo phpdismod xdebug
sudo service php-fpm restart
Observe que você precisará ajustar isso dependendo da sua versão php. Por exemplo, executando o php 7.0, você faria:
sudo phpdismod xdebug
sudo service php7.0-fpm restart
Como você está executando o php-fpm, não há necessidade de reiniciar o servidor da web real. De qualquer forma, se você não usar o fpm, poderá simplesmente reiniciar o servidor da web usando qualquer um dos comandos abaixo:
sudo service apache2 restart
sudo apache2ctl restart
Encontrei um problema semelhante. Às vezes, você não encontra o xdebug.so no php.ini. Nesse caso, execute phpinfo()
em um arquivo php e verifique Additional .ini files parsed
. Aqui você verá mais arquivos ini. Um deles será o arquivo ini do xdebug. Apenas remova (ou renomeie) esse arquivo, reinicie o apache e essa extensão será removida.
Se você estiver usando o MAMP Pro no Mac OS X, isso será feito através do cliente MAMP desmarcando Ativar Xdebug na guia PHP :
Então, sim, tudo o que você precisa, apenas linha de comentário no arquivo INI, semelhante zend_extension=xdebug.so
ou semelhante.
Os comentários podem ser feitos adicionando ponto e vírgula.
Mas, esse tipo de resposta já foi adicionado e eu gostaria de compartilhar uma solução pronta para mudar o status do Xdebug.
Eu fiz o switcher rápido para o Xdebug. Talvez seja útil para alguém.
Para o WAMP, clique com o botão esquerdo do mouse no ícone Wamp na bandeja da barra de tarefas. Passe o mouse sobre o PHP e clique em php.ini e abra-o no seu editor de texto.
Agora, procure a frase 'zend_extension' e adicione; (ponto e vírgula) na frente dele.
Reinicie o WAMP e você está pronto para ir.
Apache / 2.4.33 (Win64) PHP / 7.2.4 pilha myHomeBrew
No final do php.ini, uso o seguinte para gerenciar o Xdebug para uso com o 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 pelo PHPStorm, clique com o botão direito do mouse em um arquivo -> depurar -> ...
www-data@3bd1617787db:~/symfony$
php
-dxdebug.remote_enable=0
-dxdebug.remote_autostart=0
-dxdebug.default_enable=0
-dxdebug.profiler_enable=0
test.php
o material importante é -dxdebug.remote_enable=0 -dxdebug.default_enable=0
Eu criei este script bash para alternar o xdebug. Eu acho que deveria funcionar pelo menos no Ubuntu / Debian. Isto é 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
Desative o xdebug apenas para determinadas versões do PHP ou sapi. Nesse caso, PHP 7.2 fpm
sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart