XDebugをインストールしてからサーバーが遅くなったと思います。したがって、私の仮説をテストするために、XDebugを完全に無効にしたいと思います。これを行う方法についてのチュートリアルを探していましたが、そのような情報が見つかりません。
XDebugをインストールしてからサーバーが遅くなったと思います。したがって、私の仮説をテストするために、XDebugを完全に無効にしたいと思います。これを行う方法についてのチュートリアルを探していましたが、そのような情報が見つかりません。
回答:
あなたphp.ini
を見つけてXDebug を探してください。
xdebug autostartをfalseに設定します
xdebug.remote_autostart=0
xdebug.remote_enable=0
プロファイラーを無効にする
xdebug.profiler_enable=0
xdebugを無効にしてロードしても、パフォーマンスが低下する可能性があることに注意してください。拡張機能自体のロードを無効にするには、php.iniでコメントする必要があります。次のようなエントリを見つけます。
zend_extension = "/path/to/php_xdebug.dll"
;
コメントを付けるにはa を入れ;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
LinuxのUbuntu(多分、別の-それはテストされていない)との分布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を使用しない場合は、以下のコマンドのいずれかを使用してWebサーバーを再起動するだけです。
sudo service apache2 restart
sudo apache2ctl restart
Mac OS XでMAMP Proを使用している場合は、MAMPクライアントを介して、[ PHP ]タブで[ Xdebugをアクティブにする]をオフにします。
だから、ええ、必要なものはすべて、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