2017-01-19 7 views
8

Nach Ubuntu 14,04-16,04, PHP CLI Upgrade gestartet über xdebug beschweren:PHP7 CLI versucht xdebug zweimal zu laden - „Kann nicht Xdebug geladen werden - es wurde bereits geladen“

$ php -v 
Cannot load Xdebug - it was already loaded 
PHP 7.0.13-0ubuntu0.16.04.1 (cli) (NTS) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 
    with Zend OPcache v7.0.13-0ubuntu0.16.04.1, Copyright (c) 1999-2016, by Zend Technologies 
    with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans 

Es gibt nur eine INI-Datei :

$ ls -la /etc/php/7.0/cli/conf.d/ | grep xdebug 
lrwxrwxrwx 1 root root 38 Jan 19 11:41 20-xdebug.ini -> /etc/php/7.0/mods-available/xdebug.ini 

Und es ist nur ein einziges Mal von php -i in dieser Ausgabe verwiesen:

$ php -i | grep -i configuration 
Cannot load Xdebug - it was already loaded 
Configuration File (php.ini) Path => /etc/php/7.0/cli 
Loaded Configuration File => /etc/php/7.0/cli/php.ini 
Configuration 

Und es gibt nur eine Referenz im gesamten Verzeichnis XDebug (so ist es nicht zweimal enthalten ist):

/etc/php/7.0$ grep -r xdebug * 
mods-available/xdebug.ini:zend_extension=xdebug.so 
mods-available/xdebug.ini:[xdebug] 
mods-available/xdebug.ini:xdebug.remote_enable=1 
mods-available/xdebug.ini:xdebug.remote_autostart=1 
mods-available/xdebug.ini:xdebug.remote_port=9000 
mods-available/xdebug.ini:xdebug.idekey=PHPSTORM 

Wenn ich $ phpdismod xdebug ich die folgende Ausgabe erhalten, was darauf hindeutet, dass es noch xdebug geladen ist:

$ php -v 
PHP 7.0.13-0ubuntu0.16.04.1 (cli) (NTS) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 
    with Zend OPcache v7.0.13-0ubuntu0.16.04.1, Copyright (c) 1999-2016, by Zend Technologies 
    with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans 

Damit ist es nicht mehr in der Apache Config wie von phpinfo() gezeigt.

Wie behebe ich das?


Edit: Zusätzlicher Ausgang wie gewünscht:

$ php --ini 
Cannot load Xdebug - it was already loaded 
Configuration File (php.ini) Path: /etc/php/7.0/cli 
Loaded Configuration File:   /etc/php/7.0/cli/php.ini 
Scan for additional .ini files in: /etc/php/7.0/cli/conf.d 
Additional .ini files parsed:  /etc/php/7.0/cli/conf.d/10-mysqlnd.ini, 
/etc/php/7.0/cli/conf.d/10-opcache.ini, 
/etc/php/7.0/cli/conf.d/10-pdo.ini, 
/etc/php/7.0/cli/conf.d/15-xml.ini, 
/etc/php/7.0/cli/conf.d/20-bcmath.ini, 
/etc/php/7.0/cli/conf.d/20-calendar.ini, 
/etc/php/7.0/cli/conf.d/20-ctype.ini, 
/etc/php/7.0/cli/conf.d/20-curl.ini, 
/etc/php/7.0/cli/conf.d/20-dom.ini, 
/etc/php/7.0/cli/conf.d/20-exif.ini, 
/etc/php/7.0/cli/conf.d/20-fileinfo.ini, 
/etc/php/7.0/cli/conf.d/20-ftp.ini, 
/etc/php/7.0/cli/conf.d/20-gd.ini, 
/etc/php/7.0/cli/conf.d/20-gettext.ini, 
/etc/php/7.0/cli/conf.d/20-iconv.ini, 
/etc/php/7.0/cli/conf.d/20-json.ini, 
/etc/php/7.0/cli/conf.d/20-mbstring.ini, 
/etc/php/7.0/cli/conf.d/20-mcrypt.ini, 
/etc/php/7.0/cli/conf.d/20-mysqli.ini, 
/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini, 
/etc/php/7.0/cli/conf.d/20-pdo_sqlite.ini, 
/etc/php/7.0/cli/conf.d/20-phar.ini, 
/etc/php/7.0/cli/conf.d/20-posix.ini, 
/etc/php/7.0/cli/conf.d/20-readline.ini, 
/etc/php/7.0/cli/conf.d/20-shmop.ini, 
/etc/php/7.0/cli/conf.d/20-simplexml.ini, 
/etc/php/7.0/cli/conf.d/20-sockets.ini, 
/etc/php/7.0/cli/conf.d/20-sqlite3.ini, 
/etc/php/7.0/cli/conf.d/20-sysvmsg.ini, 
/etc/php/7.0/cli/conf.d/20-sysvsem.ini, 
/etc/php/7.0/cli/conf.d/20-sysvshm.ini, 
/etc/php/7.0/cli/conf.d/20-tokenizer.ini, 
/etc/php/7.0/cli/conf.d/20-wddx.ini, 
/etc/php/7.0/cli/conf.d/20-xdebug.ini, 
/etc/php/7.0/cli/conf.d/20-xmlreader.ini, 
/etc/php/7.0/cli/conf.d/20-xmlwriter.ini, 
/etc/php/7.0/cli/conf.d/20-xsl.ini 

$ cat /etc/php/7.0/mods-available/xdebug.ini 
zend_extension=xdebug.so 
[xdebug] 
xdebug.remote_enable=1 
xdebug.remote_autostart=1 
xdebug.remote_port=9000 
xdebug.idekey=PHPSTORM 
+0

Was ist die Ausgabe von 'php --ini' (ist besser als' php -i | grep -i Konfiguration')? PHP muss irgendwo andere Ini-Dateien analysieren ... – LazyOne

+0

@LazyOne Jetzt zu der Frage hinzugefügt. – bcmcfc

+0

Bitte überprüfen Sie alle .ini für 'zend_extension =' Zeilen. Sie können 'extension =' versuchen, um alle Erweiterungen zu sehen ... aber xdebug kann nur auf dem ersten Weg geladen werden. Aber bis jetzt muss es '/ etc/php/7.0/cli/conf.d/20-xdebug.ini' sein, während du anscheinend nur auf' mods-available/xdebug.ini' geschaut hast. – LazyOne

Antwort

2

ich dies durch zend_extension=xdebug.so Entfernen behoben haben, wie ich es schon in meinem Docker-Container mit docker-php-ext-enable xdebug aktiviert. Es könnte sein, dass es auch für Sie aktiviert ist.

+0

Ich verwende kein Docker. – bcmcfc

+0

Egal, versuchen Sie, 'zend_extension = xdebug.so' aus /etc/php/7.0/mods-available/xdebug.ini zu entfernen. – Magarusu

+0

Wenn ich das entferne, wird xdebug überhaupt nicht geladen. – bcmcfc