답변:
php.ini
XDebug를 찾아보세요 .
xdebug 자동 시작을 false로 설정
xdebug.remote_autostart=0
xdebug.remote_enable=0
프로파일 러 비활성화
xdebug.profiler_enable=0
xdebug가 비활성화되었지만로드 된 경우에도 성능 손실 이 발생할 수 있습니다 . 확장 프로그램 자체의로드를 비활성화하려면 php.ini에 주석을 추가해야합니다. 다음과 같은 항목을 찾으십시오.
zend_extension = "/path/to/php_xdebug.dll"
;
주석을 달기 위해 를 넣으 십시오 ;zend_extension = …
.
이 게시물 XDebug, 단일 .php 파일에 대한 원격 디버깅을 비활성화하는 방법을 확인하십시오 .
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
을 주석 처리 한 후 비활성화 할 수있었습니다 /etc/php5/conf.d/xdebug.ini
. 그러나 대답에 지정된 줄 /usr/lib/php5
이나 /etc
줄을 사용할 수 없습니다.
Ubuntu와 유사한 Linux 배포판에서 작동하는 쉬운 솔루션
sudo php5dismod xdebug
sudo service apache2 restart
$ sudo phpdismod xdebug
에서 리눅스 우분투 ( - 어쩌면 또 다른이 테스트 아니에요 과) 유통 PHP 5 보드에, 당신은 사용할 수 있습니다 :
sudo php5dismod xdebug
그리고 PHP 7
sudo phpdismod xdebug
그 후 서버를 다시 시작하십시오.
sudo service apache2 restart
또한 xdebug_disable()
코드에 추가 할 수 있습니다 . 시험:
if(function_exists('xdebug_disable')) { xdebug_disable(); }
구성 파일의 이름을 바꾸고 서버를 다시 시작했습니다.
$ 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
그것은 나를 위해 일했습니다.
php.ini에서 확장자를 주석으로 처리하고 Apache를 다시 시작하십시오. 다음은 간단한 스크립트입니다 (바로 가기를 지정할 수 있음).
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');
xubuntu에서 나는 이것으로 CLI에 대한 xdebug를 완전히 비활성화했습니다 ...
sudo rm /etc/php5/cli/conf.d/*xdebug*
/etc/php5/cli/conf.d/20-xdebug.ini
passthru
xdebug가 활성화 된 기능을 통해 터미널에서 다른 PHP 스크립트를 실행하는 터미널에서 php 스크립트를 실행 하면 xdebug가 중단되고 실행이 중지 될 수 있습니다.
unlink
이상 rm
이 사용할 수있는 경우.
sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
하고 주석 처리합니다.
Windows (WAMP)의 CLI ini 파일 :
X:\wamp\bin\php\php5.x.xx\php.ini
주석 줄
; XDEBUG Extension
;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"
Apache는을 처리 xdebug
하고 composer는 처리하지 않습니다.
xdebug 비활성화
PHP 7의 경우 : sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
PHP 5의 경우 : sudo nano /etc/php5/cli/conf.d/20-xdebug.ini
그런 다음 모든 것을 주석 처리하고 저장하십시오.
UPDATE-CLI 전용 비활성화
@igoemon의 의견에 따라 이것이 더 나은 방법입니다.
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
참고 : 사용중인 PHP 버전의 경로를 업데이트하십시오.
grep -r "xdebug" /etc/php/
버전 php -v
을 찾기 위해 실행하면 다른 버전이 나올 수 있습니다.
sudo vi /etc/php/5.6/mods-available/xdebug.ini
//zend_extension=xdebug.so
php-fpm
다음을 사용 하는 경우 충분해야합니다.
sudo phpdismod xdebug
sudo service php-fpm restart
PHP 버전에 따라이를 조정해야합니다. 예를 들어 php 7.0을 실행하면 다음을 수행합니다.
sudo phpdismod xdebug
sudo service php7.0-fpm restart
php-fpm을 실행하고 있으므로 실제 웹 서버를 다시 시작할 필요가 없습니다. 어쨌든 fpm을 사용하지 않으면 아래 명령 중 하나를 사용하여 웹 서버를 다시 시작할 수 있습니다.
sudo service apache2 restart
sudo apache2ctl restart
Mac OS X에서 MAMP Pro를 사용 하는 경우 PHP 탭에서 Xdebug 활성화 를 선택 취소하여 MAMP 클라이언트를 통해 수행됩니다 .
그래서, 네, 필요한 모든 것은 INI 파일의 주석 줄 zend_extension=xdebug.so
과 비슷하거나 비슷합니다.
세미콜론을 추가하여 주석을 작성할 수 있습니다.
그러나 이러한 종류의 답변은 이미 추가되었으며 Xdebug 상태를 전환하는 준비된 솔루션을 공유하고 싶습니다.
Xdebug 용 퀵 스위처를 만들었습니다. 누군가에게 유용 할 수도 있습니다.
Apache / 2.4.33 (Win64) PHP / 7.2.4 myHomeBrew 스택
php.ini 끝에서 PhpStorm과 함께 사용할 Xdebug를 관리하기 위해 다음을 사용합니다.
; 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
xdebug를 토글하기 위해이 bash 스크립트를 만들었습니다. 적어도 Ubuntu / Debian에서 작동해야한다고 생각합니다. 이것은 PHP7 + 용입니다. 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
특정 PHP 버전 또는 sapi에 대해서만 xdebug를 비활성화합니다. 이 경우 PHP 7.2 fpm
sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart