2016-10-11 2 views
0

xDebugを無効にする際に問題があります。 Apache2の再起動後/etc/php/7.0/apache2/conf.d/20-xdebug.ini hereComposerのxDebugを無効にできません

zend_extension=xdebug.so 
;zend_extension=/usr/lib/xdebug/modules/xdebug.so 
xdebug.max_nesting_level=200 
xdebug.remote_enable=1 
xdebug.remote_host=192.168.10.1 
xdebug.idekey=phpstorm 

を示唆したように私は、私は、設定ファイルからの代替としてzend_extensionをコメントアウトしましたまだコンポーザーを実行すると、次のエラーメッセージが表示されます。

xdebugを有効にしてコンポーザーを実行しています。これは、ランタイムパフォーマンスに大きな影響を与えます( )。 https://getcomposer.org/xdebug

を参照してください。私は別のxdebug.iniファイルを発見し、それが無効になっているように見えるもあります:

cat /etc/php/7.0/mods-available/xdebug.ini 
zend_extension=xdebug.so 
;zend_extension=/usr/lib/xdebug/modules/xdebug.so 
xdebug.max_nesting_level=200 
xdebug.remote_enable=1 
xdebug.remote_host=192.168.10.1 
xdebug.idekey=phpstorm 

は、私はそれをどのように行うか、PHPを再起動する必要がありますか?

$ sudo service php restart 
php: unrecognized service 
+0

Apacheを再起動する必要があります。 '$ sudo service apache2 restart' PHPはApacheモジュールとして動作します。 –

+2

いいえ、そうではありません。コマンドラインでPHPを再起動する必要はありません(fpmを実行している場合を除く)。 – Farkie

+1

'zend_extension = xdebug.so'は引き続き有効なので、まだロードされています。 – Farkie

答えて

0

あなたがここに同じ答えを見つけることができます... disabling-xdebug-when-running-composer

+0

別の質問にリンクするだけではあまり答えはありません。私は[良い答えを書くためのヒント]に行くことをお勧めします。(http://stackoverflow.com/help/how-to-answer)。あなたがちょうどいくつかの情報を参照したい場合は、同様にコメントでそれを行うかもしれません。 – Rimble

+0

情報をありがとう、私はこの次回の世話をします... –

0

あなたが IF - 私のような - DEV-VMあなたは常にルートです、での作業は、次のコードを追加することができます作曲を実行するときに、あなたの.bashrcに一時的にXDebugのを無効にする:

# Composer WITHOUT XDebug 
composer(){ 
    xdbEnabled=$(php -r 'echo extension_loaded('xdebug');') 

    hasBeenDisabled='0' # not needed, just for clarification and better readability 

    if [ $xdbEnabled == '1' ] 
     then 
      echo 'XDebug is enabled. Disabling temporarily.' 
      phpdismod xdebug 
      hasBeenDisabled='1' 
    fi 

    php /path/to/composer.phar "[email protected]" # or just 'composer "[email protected]"', if it is installed globally 

    if [ $hasBeenDisabled == '1' ] 
     then 
      phpenmod xdebug 
      echo 'XDebug has been reenabled.' 
    fi 
} 

root以外で操作している場合、あなたはphpdismodと以来、sudo composer [args]でそれを呼び出す必要がありますにrootが必要です。しかし

は、ご使用のホスト・システムまたはrootとして作曲を実行していることから、容易に回収して、サンドボックスではありません、他の環境上のが潜在的に危険であることをしないはずです(パッケージがインストールで実行されるスクリプトを登録することができ、および/あなたが必要とするすべてのパッケージを信頼することはできません)。

EDIT: これはPHP 5の場合はPHP> = 7で動作し、php5dismodphp5enmodphpdismodphpenmodを置き換える(テストしていません)。

第2編集: AFAIK、phpenmodphpdismodは、Ubuntu/Debianベースのシステムでのみ利用できます。

関連する問題