gpt4 book ai didi

php - 尝试为 PHP 构建 Xdebug 时缺少带有 "Make"的头文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:40:42 26 4
gpt4 key购买 nike

我正在尝试在 Linux 机器上安装 Xdebug 以远程调试 PHP。我在尝试构建它时遇到了很多问题,我似乎已经解决了一些问题,但我现在感觉卡住了。简短描述,“make”没有成功完成,表示找不到 zend_config.h 或 TSRM_config.h。不确定如何获得这些。

更深入的解释:(请注意,我不是 super 精通 Linux,所以如果您发现我所做的事情明显错误,请告诉我)

我正在尝试按照收到的说明进行操作 here从提供我的 phpinfo() 详细信息(见文章结尾)。我最初在尝试“制作”时遇到了一些类似于这些的错误:

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(如果我的措辞正确的话)。回到 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”的符号链接(symbolic link)。我的猜测是 XAMPP 只是根据告诉它启动的 PHP 版本切换链接。无论如何,那部分看起来不错,我运行 phpize-5.2.6 进行完整性检查,仍然得到旧版本号。现在,php-config 的设置类似,运行 php-config --version 返回“5.2.6”,这很好。

我做了更多挖掘并运行了 this post (线程中倒数第二个)。我最终下载了 5.2.17 版的 PHP 源代码(希望足够接近)并创建了线程中所述的软链接(soft link)。 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 ;;

并从这一行中删除了–no-create:

set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion

仍然没有运气。我假设 configure 应该创建这些配置文件之类的?不确定接下来要尝试什么。如果有帮助,我正在运行 SUSE SLES 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 包,以便构建模块。

关于php - 尝试为 PHP 构建 Xdebug 时缺少带有 "Make"的头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com