自从我启用XDebug以来,我在命令行中运行基于PHP的实用程序时遇到了一些问题。它通过浏览器执行脚本时运行正常,但是一旦我尝试在命令行上执行脚本,它就会抛出以下错误:
h:\www\test>@php test.php
PHP Warning: PHP Startup: Unable to load dynamic library 'E:\development\xampplite\php\ext\php_curl.dll' - The specified module could not be found in Unknown on line 0
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
h:\www\test>
在此之后脚本运行得很好,但这似乎无法解决我的问题。它可能是我的php.ini配置中的路径问题吗?我不确定是否会出现这种情况,无论我在何处访问@php
环境变量,它都会抛出相同的错误。
此外,我的php.ini中的所有路径都是绝对的。不太确定这里发生了什么。
答案 0 :(得分:22)
您可能正在使用两个不同的.ini
文件:
或许你对Apache使用的PHP有同样的问题,但是没有看到那个警告,因为它在Apache的错误日志中 - 并且它只是一个警告。
解决方案基本上是使用:
zend_extension=/.../xdebug.so
而不是:
extension=/.../xdebug.so
这正是错误消息指示的内容:Xdebug MUST be loaded as a Zend extension
- 除了它没有告诉您如何执行此操作。
注意:
xdebug.so
的绝对路径 - 你已经这样做了,这很好(无论如何都需要) zend_extension
:Xdebug是一个深入嵌入PHP的Zend引擎的扩展,这意味着使用extension
是不够的。有关更多信息以及作为参考,请参阅Xdebug文档中的Installation / activation页面。