如何在 phpstorm 中启用 Xdebug

How to enable Xdebug in phpstorm

已更新

我正在尝试在 PhpStorm 中配置 xdebug。我 运行 phpinfo() 并且我可以看到 xdebug 版本,IDE 密钥并且它已启用。

Loaded Configuration File : /etc/php/7.0/cli/php.ini 

但是在 php.ini 文件中,没有 [xdebug] 部分 但是我在 /etc/php/7.0/cli/conf.d 文件夹中找到了 20-xdebug.ini 文件。 (我假设这是我应该编辑的配置)

它只包含一行: zend_extension=xdebug.so 没有端口号,enable/disable。配置 xdebug 的下一步是什么?

通常,所有扩展的配置文件都放在一个名为 conf.d.

的目录中

另外,查看包含 'Additional .ini files parsed' 或 'Scan this dir for additional .ini files' 的行。您可以在下面看到它如何寻找我的环境(和平的 php -i 输出):

Configuration File (php.ini) Path => /usr/local/etc/php
Loaded Configuration File => /usr/local/etc/php/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/conf.d
Additional .ini files parsed => 
    /usr/local/etc/php/conf.d/docker-php-ext-gd.ini,
    /usr/local/etc/php/conf.d/docker-php-ext-intl.ini,
    /usr/local/etc/php/conf.d/docker-php-ext-mcrypt.ini,
    /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini,
    /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini,
    /usr/local/etc/php/conf.d/docker-php-ext-zip.ini,

线索 1. 确认您的系统上没有 PHP 运行 的两个版本。有时,如果您使用包管理器安装新的 PHP,而不是 OS.

附带的现有包,有时会发生这种情况

线索 2. 重启 "brew services restart php56" 或 apache2(apachectl start/stop)

我安装 xdebug 的步骤:

A. 用包管理器安装 xdebug brew install homebrew/php/php56-xdebug

B. 检查加载列表 ini-files 和 php --ini

控制台输出:

Configuration File (php.ini) Path: /usr/local/etc/php/5.6
Loaded Configuration File:         /usr/local/etc/php/5.6/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.6/conf.d
Additional .ini files parsed:      /usr/local/etc/php/5.6/conf.d/ext-gmagick.ini,
/usr/local/etc/php/5.6/conf.d/ext-igbinary.ini,
/usr/local/etc/php/5.6/conf.d/ext-imagick.ini,
/usr/local/etc/php/5.6/conf.d/ext-intl.ini,
/usr/local/etc/php/5.6/conf.d/ext-ioncubeloader.ini,
/usr/local/etc/php/5.6/conf.d/ext-mailparse.ini,
/usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini,
/usr/local/etc/php/5.6/conf.d/ext-mongo.ini,
/usr/local/etc/php/5.6/conf.d/ext-oauth.ini,
/usr/local/etc/php/5.6/conf.d/ext-opcache.ini,
/usr/local/etc/php/5.6/conf.d/ext-tidy.ini,
/usr/local/etc/php/5.6/conf.d/ext-uploadprogress.ini,
/usr/local/etc/php/5.6/conf.d/ext-xdebug.ini

C. php -m | grep xdebug - 如果您安装了 xdebug 模块,您将在输出中看到 "xdebug"。

D. 验证指向 xdebug.so 的 "zend_extension=" 线。如果您使用包管理器安装,应该已经存在了。

E. 检查 xdebug 的调整设置,我的是:

[xdebug] zend_extension="/usr/local/opt/php56-xdebug/xdebug.so"

xdebug.remote_port=9089 // <-- same in IDE
xdebug.default_enable=1
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_handler=dbgp
xdebug.idekey=PHPSTORM
xdebug.var_display_max_depth = -1 
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1 
xdebug.max_nesting_level = 1000

F. 在 PhpStorm 中设置端口号为 9089 并且 select 可以接受外部连接:"X"

希望对您有所帮助。 (我使用的是 mac,但 Linux 或 Win 是一样的)