将Ubuntu从14.04升级到16.04后,PHP CLI开始抱怨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
只有一个.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
它只在以下输出中引用一次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
并且在整个目录中只有一个对xdebug的引用(因此它没有被包含两次):
/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
如果我这样做,$ phpdismod xdebug
我得到以下输出,表明它仍然加载了xdebug:
$ 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
完成后,它不再出现在apache配置中,如图所示phpinfo()
.
我该如何解决?
编辑: 请求的其他输出:
$ 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
由于这仍然是一个问题,我发现了一些进一步的细节:
路径:
$ 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
有趣的是,php二进制文件与php7.1完全相同,但是当它被称为特定时,它不会显示已经加载的消息.
编辑,20181006:
我还有这个问题.下图是两个php --ini
调用输出的差异.如您所见,加载的ini文件集是相同的.
它们也是符号链接的二进制文件:
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
小智.. 14
我已经修复了这个,zend_extension=xdebug.so
因为我已经在我的docker容器中启用了它docker-php-ext-enable xdebug
.它可能也是为你启用的.
我已经修复了这个,zend_extension=xdebug.so
因为我已经在我的docker容器中启用了它docker-php-ext-enable xdebug
.它可能也是为你启用的.
在Arch Linux中,软件包xdebug生成以下配置:
/etc/php/conf.d/xdebug.ini ---------- zend_extension=xdebug.so xdebug.remote_enable=on xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_handler=dbgp #xdebug.max_nesting_level=300
这加载了zend_extension=xdebug.so
位于相同位置的两倍/etc/php/php.ini