Ich denke, dass mein Server langsam wurde, seit ich XDebug installiert habe. Um meine Hypothese zu testen, möchte ich XDebug vollständig deaktivieren. Ich habe nach Tutorials gesucht, aber ich kann solche Informationen nicht finden.
Ich denke, dass mein Server langsam wurde, seit ich XDebug installiert habe. Um meine Hypothese zu testen, möchte ich XDebug vollständig deaktivieren. Ich habe nach Tutorials gesucht, aber ich kann solche Informationen nicht finden.
Antworten:
Finden Sie Ihre php.ini
und suchen Sie nach XDebug.
Setzen Sie xdebug autostart auf false
xdebug.remote_autostart=0
xdebug.remote_enable=0
Deaktivieren Sie Ihren Profiler
xdebug.profiler_enable=0
Beachten Sie, dass es auch bei deaktiviertem, aber geladenem xdebug zu Leistungseinbußen kommen kann . Um das Laden der Erweiterung selbst zu deaktivieren, müssen Sie sie in Ihrer php.ini kommentieren. Finden Sie einen Eintrag, der so aussieht:
zend_extension = "/path/to/php_xdebug.dll"
und setzen Sie ein, ;
um es zu kommentieren, z ;zend_extension = …
.
Schauen Sie sich diesen Beitrag XDebug an, wie man das Remote-Debugging für eine einzelne .php-Datei deaktiviert?
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
von kommentiert hatte /etc/php5/conf.d/xdebug.ini
. Es sind jedoch weder in /usr/lib/php5
noch in /etc
den in der Antwort angegebenen Zeilen verfügbar.
Eine einfache Lösung für Linux-Distributionen, die Ubuntu ähneln
sudo php5dismod xdebug
sudo service apache2 restart
$ sudo phpdismod xdebug
In der Linux-Ubuntu-Distribution ( vielleicht auch eine andere - es ist nicht getestet ) mit PHP 5 an Bord können Sie Folgendes verwenden:
sudo php5dismod xdebug
Und mit PHP 7
sudo phpdismod xdebug
Und danach starten Sie bitte den Server neu:
sudo service apache2 restart
Sie können xdebug_disable()
Ihrem Code auch etwas hinzufügen . Versuchen:
if(function_exists('xdebug_disable')) { xdebug_disable(); }
Ich habe die Konfigurationsdatei umbenannt und den Server neu gestartet:
$ 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
Es hat bei mir funktioniert.
Kommentieren Sie die Erweiterung in der php.ini und starten Sie Apache neu. Hier ist ein einfaches Skript (Sie können ihm eine Verknüpfung zuweisen)
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 habe ich xdebug für die CLI damit komplett deaktiviert ...
sudo rm /etc/php5/cli/conf.d/*xdebug*
/etc/php5/cli/conf.d/20-xdebug.ini
passthru
, dass xdebug möglicherweise hängen bleibt und die Ausführung stoppt, wenn Sie ein PHP-Skript vom Terminal ausführen, das ein anderes PHP-Skript vom Terminal über eine Funktion mit aktiviertem xdebug ausführt.
unlink
über , rm
wenn es verfügbar ist .
sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
und es auskommentieren .
Unter Windows (WAMP) in der CLI-INI-Datei:
X:\wamp\bin\php\php5.x.xx\php.ini
Kommentarzeile
; XDEBUG Extension
;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"
Apache wird verarbeitet xdebug
und Komponist nicht.
Finden Sie Ihre PHP.ini und suchen Sie nach XDebug.
Normalerweise ist sein Pfad in Ubuntu
/etc/php5/apache2/php.ini
Nehmen Sie die folgenden Änderungen vor (am besten kommentieren Sie sie einfach durch Hinzufügen; am Anfang)
xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0
Starten Sie dann Ihren Server für Ubuntu erneut
sudo service apache2 restart
Xdebug deaktivieren
Für PHP 7: sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
Für PHP 5: sudo nano /etc/php5/cli/conf.d/20-xdebug.ini
Dann alles auskommentieren und speichern.
UPDATE - Nur für CLI deaktivieren
Laut @ igoemons Kommentar ist dies eine bessere Methode:
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
Hinweis: Aktualisieren Sie den Pfad zu Ihrer PHP-Version.
grep -r "xdebug" /etc/php/
Dies kann zu unterschiedlichen Versionen führen. Wenn dies der Fall ist php -v
, suchen Sie nach Ihrer Version.
sudo vi /etc/php/5.6/mods-available/xdebug.ini
//zend_extension=xdebug.so
Wenn Sie php-fpm
Folgendes verwenden, sollte Folgendes ausreichen:
sudo phpdismod xdebug
sudo service php-fpm restart
Beachten Sie, dass Sie dies abhängig von Ihrer PHP-Version anpassen müssen. Zum Beispiel würden Sie PHP 7.0 ausführen:
sudo phpdismod xdebug
sudo service php7.0-fpm restart
Da Sie php-fpm ausführen, sollte es nicht erforderlich sein, den eigentlichen Webserver neu zu starten. In jedem Fall, wenn Sie fpm nicht verwenden, können Sie Ihren Webserver einfach mit einem der folgenden Befehle neu starten:
sudo service apache2 restart
sudo apache2ctl restart
Ich bin auf ein ähnliches Problem gestoßen. Manchmal finden Sie xdebug.so nicht in php.ini. In diesem Fall führen Sie phpinfo()
in einer PHP-Datei und suchen Sie nach Additional .ini files parsed
. Hier sehen Sie weitere INI-Dateien. Eine davon ist die INI-Datei von xdebug. Entfernen Sie einfach diese Datei (oder benennen Sie sie um), starten Sie Apache neu und diese Erweiterung wird entfernt.
Wenn Sie MAMP Pro unter Mac OS X verwenden, erfolgt dies über den MAMP-Client, indem Sie auf der Registerkarte PHP die Option Xdebug aktivieren deaktivieren :
Also, ja, alles was Sie brauchen, kommentieren Sie einfach die Zeile in der INI-Datei wie zend_extension=xdebug.so
oder ähnlich.
Kommentare können durch Hinzufügen eines Semikolons abgegeben werden.
Aber eine solche Antwort wurde bereits hinzugefügt, und ich möchte eine fertige Lösung zum Wechseln des Xdebug-Status freigeben.
Ich habe einen schnellen Umschalter für Xdebug gemacht. Vielleicht wäre es für jemanden nützlich.
Klicken Sie für WAMP mit der linken Maustaste auf das Wamp-Symbol in der Taskleiste. Bewegen Sie den Mauszeiger über PHP und klicken Sie dann auf php.ini und öffnen Sie es in Ihrem Texteditor.
Suchen Sie nun nach der Phrase 'zend_extension' und fügen Sie hinzu; (Semikolon) davor.
Starten Sie den WAMP neu und Sie können loslegen.
Apache / 2.4.33 (Win64) PHP / 7.2.4 myHomeBrew-Stack
Am Ende von php.ini verwende ich Folgendes, um Xdebug für die Verwendung mit PhpStorm zu verwalten
; 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
Inspiriert von PHPStorm Rechtsklick auf eine Datei -> Debug -> ...
www-data@3bd1617787db:~/symfony$
php
-dxdebug.remote_enable=0
-dxdebug.remote_autostart=0
-dxdebug.default_enable=0
-dxdebug.profiler_enable=0
test.php
Das Wichtigste ist -dxdebug.remote_enable=0 -dxdebug.default_enable=0
Ich habe dieses Bash-Skript zum Umschalten von xdebug erstellt. Ich denke, es sollte zumindest unter Ubuntu / Debian funktionieren. Dies ist für PHP7 +. Verwenden Sie für PHP5 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
Deaktivieren Sie xdebug nur für bestimmte PHP-Versionen oder Sapi. In diesem Fall PHP 7.2 fpm
sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart