Myślę, że mój serwer zwolnił, odkąd zainstalowałem XDebug. Tak więc, aby sprawdzić moją hipotezę, chcę całkowicie wyłączyć XDebug. Szukałem poradników, jak to zrobić, ale nie mogę znaleźć takich informacji.
Myślę, że mój serwer zwolnił, odkąd zainstalowałem XDebug. Tak więc, aby sprawdzić moją hipotezę, chcę całkowicie wyłączyć XDebug. Szukałem poradników, jak to zrobić, ale nie mogę znaleźć takich informacji.
Odpowiedzi:
Znajdź swój php.ini
i poszukaj XDebug.
Ustaw autostart xdebug na false
xdebug.remote_autostart=0
xdebug.remote_enable=0
Wyłącz swój profiler
xdebug.profiler_enable=0
Zauważ, że może wystąpić utrata wydajności nawet przy wyłączonym, ale załadowanym xdebug . Aby wyłączyć ładowanie samego rozszerzenia, musisz skomentować je w swoim php.ini. Znajdź wpis wyglądający tak:
zend_extension = "/path/to/php_xdebug.dll"
i wstaw ;
komentarz, np ;zend_extension = …
.
Sprawdź ten post XDebug, jak wyłączyć zdalne debugowanie dla pojedynczego pliku .php?
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
z /etc/php5/conf.d/xdebug.ini
. Jednak ani w, /usr/lib/php5
ani w /etc
wierszach określonych w odpowiedzi nie są dostępne.
Proste rozwiązanie działające na dystrybucjach Linuksa podobnych do Ubuntu
sudo php5dismod xdebug
sudo service apache2 restart
$ sudo phpdismod xdebug
W dystrybucji Linuksa Ubuntu ( może i innej - nie jest testowana ) z PHP 5 na pokładzie można użyć:
sudo php5dismod xdebug
A z PHP 7
sudo phpdismod xdebug
Następnie zrestartuj serwer:
sudo service apache2 restart
Możesz także dodać xdebug_disable()
do swojego kodu. Próbować:
if(function_exists('xdebug_disable')) { xdebug_disable(); }
Zmieniłem nazwę pliku konfiguracyjnego i zrestartowałem serwer:
$ 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
U mnie zadziałało.
Rozszerzenie komentarza w php.ini i zrestartuj Apache. Oto prosty skrypt (możesz przypisać do niego skrót)
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');
w xubuntu całkowicie wyłączyłem xdebug dla CLI tym ...
sudo rm /etc/php5/cli/conf.d/*xdebug*
/etc/php5/cli/conf.d/20-xdebug.ini
passthru
funkcji z włączonym xdebug, xdebug może zawiesić się i zatrzymać wykonywanie.
unlink
więcej, rm
jeśli jest dostępny.
sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
i skomentował to.
W systemie Windows (WAMP) w pliku ini CLI:
X:\wamp\bin\php\php5.x.xx\php.ini
wiersz komentarza
; XDEBUG Extension
;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"
Apache przetworzy xdebug
, a kompozytor nie.
Znajdź swój plik PHP.ini i poszukaj XDebug.
zwykle w Ubuntu jego ścieżka to
/etc/php5/apache2/php.ini
Wprowadź następujące zmiany (lepiej je po prostu skomentować, dodając; na początku)
xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0
następnie ponownie uruchom serwer w systemie Ubuntu
sudo service apache2 restart
Wyłącz xdebug
Dla PHP 7: sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
Dla PHP 5: sudo nano /etc/php5/cli/conf.d/20-xdebug.ini
Następnie skomentuj wszystko i zapisz.
UPDATE - Wyłącz tylko dla CLI
Zgodnie z komentarzem @ igoemon jest to lepsza metoda:
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
Uwaga: zaktualizuj ścieżkę do swojej wersji PHP.
grep -r "xdebug" /etc/php/
Może to spowodować pojawienie się różnych wersji, jeśli tak, uruchom, php -v
aby znaleźć swoją wersję.
sudo vi /etc/php/5.6/mods-available/xdebug.ini
//zend_extension=xdebug.so
Jeśli używasz php-fpm
następujących, powinno wystarczyć:
sudo phpdismod xdebug
sudo service php-fpm restart
Zauważ, że będziesz musiał to dostosować w zależności od wersji php. Na przykład uruchomienie php 7.0 zrobiłbyś:
sudo phpdismod xdebug
sudo service php7.0-fpm restart
Ponieważ używasz php-fpm, nie powinno być potrzeby restartowania właściwego serwera WWW. W każdym razie, jeśli nie używasz fpm, możesz po prostu zrestartować serwer WWW za pomocą dowolnego z poniższych poleceń:
sudo service apache2 restart
sudo apache2ctl restart
Wpadłem na podobny problem. Czasami nie znajdziesz xdebug.so w php.ini. W takim przypadku uruchom phpinfo()
plik php i sprawdź Additional .ini files parsed
. Tutaj zobaczysz więcej plików ini. Jednym z nich będzie plik ini xdebug. Po prostu usuń (lub zmień nazwę) tego pliku, uruchom ponownie apache, a to rozszerzenie zostanie usunięte.
Jeśli używasz MAMP Pro w systemie Mac OS X, odbywa się to za pośrednictwem klienta MAMP, odznaczając opcję Aktywuj Xdebug na karcie PHP :
Więc tak, wszystko, czego potrzebujesz, po prostu komentarz w pliku INI zend_extension=xdebug.so
lub podobny.
Komentarze można dodawać, dodając średnik.
Ale taka odpowiedź już dodana i chciałbym podzielić się gotowym rozwiązaniem zmiany statusu Xdebug.
Zrobiłem szybką zmianę dla Xdebug. Może komuś się przyda.
Apache / 2.4.33 (Win64) PHP / 7.2.4 stos myHomeBrew
Na końcu php.ini używam poniższego do zarządzania Xdebug do użytku z 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
Zainspirowany PHPStorm kliknij prawym przyciskiem myszy plik -> debuguj -> ...
www-data@3bd1617787db:~/symfony$
php
-dxdebug.remote_enable=0
-dxdebug.remote_autostart=0
-dxdebug.default_enable=0
-dxdebug.profiler_enable=0
test.php
ważne jest -dxdebug.remote_enable=0 -dxdebug.default_enable=0
Stworzyłem ten skrypt bash do przełączania xdebug. Myślę, że powinno działać przynajmniej na Ubuntu / Debian. To jest dla PHP7 +. W przypadku PHP5 użyj 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
Wyłącz xdebug tylko dla niektórych wersji PHP lub sapi. W tym przypadku PHP 7,2 fpm
sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart