PHP7 CLI tente de charger l'extension xdebug deux fois “Impossible de charger l'extension Xdebug - il était déjà chargé”
Après la mise à niveau de Ubuntu 14.04 à 16.04, PHP CLI a commencé à se plaindre à propos de xdebug:
$ 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
Il n'y en a qu'une .fichier ini:
$ 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
Et c'est seulement référencés dans cette sortie de php -i
:
$ 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
Et il n'y a qu'une seule référence à l'extension xdebug dans l'ensemble du répertoire (donc il n'est pas inclus deux fois):
/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
Si je ne $ phpdismod xdebug
- je obtenir la sortie suivante, ce qui suggère qu'il a encore xdebug chargé:
$ 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
Ayant fait cela, il n'est plus présent dans la config d'apache, comme indiqué par phpinfo()
.
Comment puis-je résoudre ce problème?
Edit: de sortie Supplémentaires sur demande:
$ 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
Que c'est encore une question, j'ai trouvé certains détails:
Chemins:
$ ls -la /usr/bin/php
lrwxrwxrwx 1 root root 21 Apr 18 2017 /usr/bin/php -> /etc/alternatives/php
$ ls -la /etc/alternatives/php
lrwxrwxrwx 1 root root 15 Feb 12 15:43 /etc/alternatives/php -> /usr/bin/php7.1
php:
$ php -v
Cannot load Xdebug - it was already loaded
PHP 7.1.15-1+ubuntu16.04.1+deb.sury.org+2 (cli) (built: Mar 6 2018 11:10:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.1.15-1+ubuntu16.04.1+deb.sury.org+2, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
php7.1:
$ php7.1 -v
PHP 7.1.15-1+ubuntu16.04.1+deb.sury.org+2 (cli) (built: Mar 6 2018 11:10:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.1.15-1+ubuntu16.04.1+deb.sury.org+2, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
La chose intéressante est que le php est identique à php7.1 mais lorsqu'il est appelé en tant qu'il ne montre pas le déjà chargé message.
Modifier, 20181006:
J'ai toujours ce problème. L'image ci-dessous est un diff sur la sortie des deux php --ini
appels. Comme vous pouvez le voir, les ensembles de fichiers ini chargés sont les mêmes.
Ils sont également les mêmes liés par un lien symbolique binaires:
ben@ben-work:~$ which php
/usr/bin/php
ben@ben-work:~$ ls -la /usr/bin/php
lrwxrwxrwx 1 root root 21 May 15 16:07 /usr/bin/php -> /etc/alternatives/php
ben@ben-work:~$ ls -la /etc/alternatives/php
lrwxrwxrwx 1 root root 15 May 30 10:13 /etc/alternatives/php -> /usr/bin/php7.1
ben@ben-work:~$ which php7.1
/usr/bin/php7.1
php --ini
(c'est mieux que php -i | grep -i configuration
)? PHP doit être l'analyse d'autres fichiers ini quelque part...Ajouté à la question maintenant.
Veuillez cocher toutes les cases .ini pour
zend_extension=
lignes. Vous pouvez essayer de extension=
pour voir toutes les extensions ... mais xdebug peut être chargé en premier seulement. MAIS jusqu'à présent, il doit être /etc/php/7.0/cli/conf.d/20-xdebug.ini
tout vous semble avoir regardé mods-available/xdebug.ini
seulementL'un des liens symboliques à l'autre.
Semble que vous avez eu 2 xdebug.les fichiers ini pour être chargé. /etc/php/7.0/cli/conf.d/20-xdebug.ini et /etc/php/7.0/mods-available/xdebug.ini Essayez de commenter l'un d'entre eux.
OriginalL'auteur bcmcfc | 2017-01-19
Vous devez vous connecter pour publier un commentaire.
J'ai corrigé cela en supprimant
zend_extension=xdebug.so
comme je l'ai déjà activé dans mon conteneur docker avecdocker-php-ext-enable xdebug
. Il pourrait être qu'il est activé pour vous.N'a pas d'importance, essayez de supprimer 'zend_extension=xdebug.donc,' a partir de /etc/php/7.0/mods-available/xdebug.ini.
Quand j'ai supprimer puis xdebug n'est pas chargé.
Oh merde, désolé, je ne pouvais pas aider plus. C'était le problème pour moi, car il a déjà obtenu chargé à partir de quelque part d'autre. Il se peut que le fichier est chargé à deux reprises pour vous et peut-être pas à partir du répertoire que vous avez cherché. Je vais laisser ma réponse en tant que bien que cela puisse aider les autres. Espérons que vous parvenez à trouver le problème.
Pas de soucis, il peut aider quelqu'un d'autre.
OriginalL'auteur Magarusu
Debian et ses dérivés:
Je fixe localiser mon php.ini, la modification de la
zend_extension=xdebug.so
à l'ancienne (donc je suppose que la même chose serait de se passer de commentaire de la ligne)zend_extension_ts=zdebug.so
.Puis avec:
php -i | grep xdebug
il devrait y avoir une seule conf.d avec lezend_extension=xdebug.so
. S'il n'y avait plus d'un à supprimer le reste des entrées.OriginalL'auteur vivoconunxino
Pour les utilisateurs qui font face au même problème.
Dans mon scénario, il a été le problème avec
php cli
donc à chaque fois que j'ai essayé de php dans la console, j'ai été faire un avis:Cannot load the ionCube PHP Loader - extension already loaded
J'imagine que ça va être similaire à d'autres extensions.
Ce que j'ai finalement fait est la suivante:
Qu'il a été.
OriginalL'auteur JonnieJS
J'ai eu le même problème et l'a résolu en supprimant ligne supplémentaire de code
zend_extension="xdebug.so"
à l'intérieur de php.fichier ini dans le dossier de php, le php --version montrant, généralement à l'intérieur de/usr/local/etc/php/
pour les utilisateurs de mac.OriginalL'auteur farnoosh
Dans Arch Linux le paquet xdebug génère la configuration suivante:
Cette charge deux fois la même
zend_extension=xdebug.so
situé dans/etc/php/php.ini
php --ini
=> il ya des chances estxdebug.ini
dans la listeOriginalL'auteur dnloop