wamp - xdebug配置未保存

时间:2018-04-20 08:53:44

标签: php phpstorm wamp xdebug

这是我在php.ini中的xdebug配置

[xdebug]
zend_extension="C:\wamp64\bin\php\php5.6.35\zend_ext\php_xdebug-2.5.5-5.6-vc11-x86_64.dll"
xdebug.remote_log = C:\wamp64\logs\xdebug.log
xdebug.idekey = PHPSTORM
xdebug.remote_port = 9000
xdebug.remote_handler="dbgp"
xdebug.remote_autostart = on
xdebug.remote_start = on
xdebug.remote_enable = on
xdebug.remote_connect_back = on

它位于文件的最底部。 正如您所看到的,我已将xdebug.idekey设置为PHPSTORM,但phpinfo()显示未设置该值,我做错了什么?

我还通过PhpStorm设置了idekey,但为什么底部的phpinfo()中有no value条目?最上面一个填充?!

enter image description here

2 个答案:

答案 0 :(得分:1)

编辑来自评论和@Black的回答这就是答案:

WAMP使用3个PHP.ini文件:

  • Apache的文件:wamp\bin\apache\apache[version]\bin\php.ini
  • PHP的文件:wamp\bin\php\php[version]\php.ini
  • 第三档:wamp\bin\php\php[version]\phpForApache.ini

前两个文件很有用,apache的文件用于HTTP调用,PHP用于CGI / CLI。第三个用于WAMP有2个PHP版本时,WAMP用它来保存当前配置,然后为新版本创建一个新的PHP.ini文件。这在PHP的版本切换期间发生。

在Xdebug的案例中,确实是apache的文件很重要。当phpinfo没有显示任何修改时,这是一个常见的问题。

如果这两个文件之间具有相同的配置,您还可以将PHP文件的符号链接设为apache。这将节省很多头痛。

不幸发现 取决于您的请求,您可能希望使用不同的东西配置您的服务器。

您尝试将Xdebug用作远程,然后您的IDEKEY应设置为名为的DBGP_IDEKEY

的环境变量

这是doc:

  

<强> xdebug.idekey

     

类型:字符串,默认值: complex 控制哪个IDE Key Xdebug   应该传递给DBGp调试器处理程序。默认值基于   环境设置。首先是环境设置DBGP_IDEKEY   咨询,然后是USER和最后一个USERNAME。 默认设置为   找到的第一个环境变量。如果找不到的话   设置为默认值''。如果设置了此设置,它将始终覆盖   环境变量。

您可能会担心我用斜体文字指出的条件

与评论相关联,请查看完整的documentation

我记得WAMP使用Xdebug作为Thread安全扩展,你应该尝试 取代

zend_extension="C:\wamp64\bin\php\php5.6.35\zend_ext\php_xdebug-2.5.5-5.6-vc11-x86_64.dll"

通过

zend_extension_ts="C:\wamp64\bin\php\php5.6.35\zend_ext\php_xdebug-2.5.5-5.6-vc11-x86_64.dll"

并检查您是否下载了正确版本的Xdebug(线程安全)

然后重新启动wamp并查看是否有更改。

编辑:您的PHP.ini存在问题,您没有修改正确的问题。我用这个成功了:

; XDEBUG Extension zend_extension = "C:\wamp\bin\php\php7.0.4\zend_ext\php_xdebug-2.4.0-7.0-vc14-x86_64.dll" ; [xdebug] xdebug.remote_enable=1 xdebug.idekey = "PHPSTORM" xdebug.remote_autostart= on xdebug.remote_connect_back= 1 xdebug.remote_host="127.0.0.1" xdebug.remote_port=9000 xdebug.remote_handler="dbgp" xdebug.remote_mode=req xdebug.profiler_enable = 0 xdebug.profiler_output_dir = "c:/wamp/tmp/" xdebug.collect_params = On xdebug.show_local_vars = On

here is what i got

答案 1 :(得分:1)

未保存的原因是wamp,您必须将配置存储在C:\wamp64\bin\apache\apache_VERSION\bin\php.ini而不是C:\wamp64\bin\php\php_VERSION\php.ini

我使用Notepad ++在我的整个wamp/bin/php文件夹中搜索了字符串xdebug的出现,这就是我如何找到它的。