我正试图在linux机器上安装xdebug来远程调试php。我在尝试构建它的过程中遇到了一些问题,我似乎已经解决了一些问题,但我现在感觉卡住了。简短的描述,“make”没有成功完成,它说找不到zend_config.h或tsrm_config.h。不知道如何获得这些。
更深入的解释:(请注意,我不是超级linux专家,所以如果你看到我做的事情是明显错误的,请告诉我)
我正在尝试按照我从提供phpinfo()详细信息中收到的here指示进行操作(请参阅文章末尾)。我最初在尝试“制造”时,会遇到一些类似的错误:

Error: ‘ZEND_USER_OPCODE_DISPATCH’ undeclared (first use in this function)
Error: ‘ZEND_RAISE_ABSTRACT_ERROR’ undeclared (first use in this function)
Etc.

我的猜测是,这不是正确版本的zend的phpize'd(如果我的措辞正确的话)。回到phpize步骤,返回的版本与phpinfo()不一致。而不是看到:
PHP Api Version:            whatever
Zend Module Api No:         20060613
Zend Extension Api No:      220060519

我反而看到:
PHP Api Version:            20020918
Zend Module Api No:         20020429
Zend Extension Api No:      20050606

为了让事情变得更复杂,我运行了一个旧版本的xampp(1.6.8a),它允许我在php 4.4.9和php 5.2.6之间切换(目前我正试图在工作中转换php版本,调试会真正加快速度)。我目前正在运行php5模式。检查/opt/lampp/bin/phpize,我发现它是指向“phpize-5.2.6”的符号链接。我的猜测是xampp只是根据php的版本来切换链接。不管怎样,这部分看起来不错,我运行phpize-5.2.6进行了一次健全性检查,仍然得到旧版本号。现在,PHPConfig的设置与此类似,运行PHPConfig——version返回“5.2.6”,这很好。
我做了更多的挖掘,并穿越了this post(第二个到最后一个线程)。最后,我下载了5.2.17版的php源代码(希望这已经足够接近了),并创建了线程中描述的软链接。phpize版本现在看起来好多了,并且与xdebug站点所说的一致:
PHP Api Version:        20041225
Zend Module Api No:     20060613
Zend Extension Api No:  220060519

“make”正在抛出上面列出的丢失的头文件错误。我看到this post并决定使用我的配置文件。
我发表了评论
-no-create | --no-create | --no-creat | --no-crea | --no-cre \ <br/>
  | --no-cr | --no-c | -n)
    no_create=yes ;;

并删除-不从此行创建:
set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion

仍然没有运气。我假设configure应该创建这些配置文件还是什么?不知道下一步该怎么做。如果有帮助的话,我在运行苏塞斯莱斯10。感谢
Xdebug custom generated install instructions:
SUMMARY
•  Xdebug installed: no
•  Server API: Apache 2.0 Handler
•  Windows: no
•  Zend Server: no
•  PHP Version: 5.2.6
•  Zend API nr: 220060519
•  PHP API nr: 20060613
•  Debug Build: no
•  Thread Safe Build: no
•  Configuration File Path: /opt/lampp/etc
•  Configuration File: /opt/lampp/etc/php.ini
•  Extensions directory: /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613
INSTRUCTIONS
1.  Download xdebug-2.1.0.tgz
2.  Unpack the downloaded file with tar -xvzf xdebug-2.1.0.tgz
3.  Run: cd xdebug-2.1.0
4.  Run: phpize
As part of its output it should show:
Configuring for:
...
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
If it does not, you are using the wrong phpize. Please follow this FAQ entry and skip the next step.
5.  Run: ./configure
6.  Run: make
7.  Run: cp modules/xdebug.so /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613
8.  Edit /opt/lampp/etc/php.ini and add the line
zend_extension = /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so
9.  Restart the webserver

最佳答案

看起来您使用的是旧版本的php,这可能意味着您使用的是linux发行版中的php包。
如果是这样,首先检查您的发行版是否提供了xdebug包。否则,您可能必须安装php*-dev或php*-devel包才能构建模块。

08-16 09:41