我在我的Mac上设置了php 5.6和Apache,并安装了带有php插件的IntelliJ(2016.2)。问题是IDE不想连接到本地服务器。
我在php.ini中添加了以下几行:
[xdebug]
zend_extension=/usr/local/Cellar/php56/5.6.24/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = "9000"
当我运行php -v
时,我得到:
Zend Engine v2.6.0,版权所有(c)1998-2016 Zend Technologies 与Xdebug v2.4.0,版权所有(c)2002-2016,Derick Rethans
和phpinfo()
显示
xdebug.remote_enable On On xdebug.remote_port 9000 9000
但是IntelliJ显示:
xdebug.remote_enable 0
我已经检查过,我指向右侧php.ini
(已检查的路径以及编辑文件时出现的其他更改)。
我尝试了所有配置(包括使用IDE密钥),但似乎没有任何工作。
有没有办法可以检查调试是否真的有效(即IDE无法识别某些内容或服务器是否有故障),因为此时我不知道问题可能是什么。
答案 0 :(得分:3)
最好的方法是收集xdebug log这样不成功的调试会话,看看它有什么用。有时调试对你不起作用(IDE没有反应),但xdebug实际连接到某处(例如另一个服务......如下所述)。
您的计算机上可能会运行php-fpm
(这取决于您安装PHP的方式 - 您使用的是什么工具)。默认情况下,Php-fpm使用与xdebug相同的TCP 9000端口。
sudo lsof -nP -iTCP -sTCP:LISTEN
在终端中运行此命令 - 它应该告诉(在9000
关键字上过滤结果后)哪些服务已在该端口上侦听。
如果确实php-fpm
..然后在两个IDE设置中将xdebug端口从默认9000
更改为任何其他端口(例如9001
或任何其他通常未使用的端口)+ php.ini将解决这个问题。