在 Mac 上的 xampp 上安装 xDebug:phpize 不起作用

Posted

技术标签:

【中文标题】在 Mac 上的 xampp 上安装 xDebug:phpize 不起作用【英文标题】:Installing xDebug on xampp on mac: phpize not working 【发布时间】:2016-06-20 04:14:37 【问题描述】:

我在 OS 10.11 上使用 xampp5.6.15。我正在关注这个instruction 来安装xDebug。我的“量身定制的安装说明”如下:

在这条指令中,并没有提到将下载的tgz文件放在哪里,所以我把它放在downloads文件夹的位置,在我运行phpize之后,输出是这样的:

grep: /usr/include/php/main/php.h: 没有这样的文件或目录 grep: /usr/include/php/Zend/zend_modules.h:没有这样的文件或目录 grep: /usr/include/php/Zend/zend_extensions.h:没有这样的文件或目录 配置:PHP Api 版本: Zend 模块 API 编号: Zend Extension Api No: 找不到自动配置。请检查您的 autoconf 安装和 $PHP_AUTOCONF 环境变量。 然后,重新运行此脚本。

我猜是因为 xdebug 文件夹不在正确的位置,我尝试将它移动到 xamppfiles/xamppfiles/modules/ 以及其他一些地方,但没有任何效果。

那么有什么问题吗?我应该把文件夹放在哪里?

【问题讨论】:

ls /usr/include/php/main/ 向您展示了什么?它抱怨的文件应该作为系统的一部分安装;它们不是源文件,而是头文件。但是,除非您使用相同版本的 PHP,否则它们将无法工作。 您真正想做的是安装一个包管理系统,如 Macports 或 Homebrew。他们会为您处理所有这些废话,并保持最新状态。 嗨!我不确定这条评论是否会对您有所帮助,但是,如果您尝试安装 xDebug 扩展,基本上步骤是: 1:下载您的 php 版本的 xdebug.so 文件。 2:将 xdebug.so 文件放在扩展文件夹中。 3:更改 php.ini 文件中的配置,有关 zend 扩展的内容。在你的情况下,你必须弄清楚你的 php.ini 文件在哪里,它的扩展文件夹在哪里以及你的 php 版本是什么。请记住,您可以有一个用于 cli 的 php.ini 和另一个用于 apache,为避免混淆,请运行函数 phpinfo();在 php 文件中,而不是通过控制台 顺便说一句,如果您的问题是由于您放置文件夹的文件夹,我猜该文件夹应该在应用程序文件夹 xampp 中,但它们可以在任何地方,因为您正在设置php.ini 文件中的扩展路径... 这就是为什么我决定在 OS X 中使用 vagrant 在 php 上进行开发...一开始这似乎不是一个好主意,但后来你意识到这类问题更容易解决解决。还有一个叫MAMP的软件,我猜它和XAMPP是一样的……也许是更好的选择……检查一下…… 【参考方案1】:

在 xdebug 源目录中提供 XAMPP php 二进制文件的完整路径:

$ cd xdebug-2.5.0
$ /Applications/XAMPP/xamppfiles/bin/phpize
$ ./configure --enable-xdebug --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config
$ make

接下来将 modules\xdebug.so 放到 Extensions 目录中(参见定制的安装说明)。

【讨论】:

【参考方案2】:

也许你可以像这样解决问题:

1.cd xdebug-2.5.4 2./Applications/XAMPP/xamppfiles/bin/phpize

如果没有自制请安装:https://brew.sh/

3.brew install autoconf 4../configure --enable-xdebug --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config

别忘了运行“make test”: 5.make 6.make test 7.cp modules/xdebug.so /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012

编辑 /Applications/XAMPP/xamppfiles/etc/php.ini: 8.vi /Applications/XAMPP/xamppfiles/etc/php.ini 9.并添加行:zend_extension = /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so

10.重新启动您的网络服务器。

我希望这种方法对您有所帮助。

【讨论】:

“brew install autoconf”有什么作用?【参考方案3】:

当我尝试运行 phpize 来安装 xdebug 时,我只是在为同样的问题苦苦挣扎并收到以下消息。就我而言,解决方案(和问题)是我刚刚没有安装 XAMPP 开发人员文件!当您运行 XAMPP 安装程序时,您可以选中或取消选中此选项。如果您最初没有检查它,只需再次运行安装程序,它允许您只添加开发人员文件。

为了完整起见:我也遇到了错误版本的 php / phpize 的问题(使用了旧的 OSX 版本),所以我还必须设置 XAMPP 版本的 php、phpize 等的路径存储:

export PATH=/Applications/XAMPP/xamppfiles/bin/:$PATH

之后,一切都很好,我可以按照 XDEBUG 向导给我的步骤操作:https://xdebug.org/wizard.php

这是我通过 runnin phpize 得到的原始错误消息:

grep: /Applications/XAMPP/xamppfiles/include/php/main/php.h: 没有这样的文件或目录 grep:/Applications/XAMPP/xamppfiles/include/php/Zend/zend_modules.h:没有这样的文件或目录 grep:/Applications/XAMPP/xamppfiles/include/php/Zend/zend_extensions.h:没有这样的文件或目录 配置: PHP API 版本: Zend 模块 API 编号: Zend 扩展 Api 号:

【讨论】:

这正是我的问题。没什么特别的,只是运行 OSX Mojave 并使用 XAMPP。好吧,我也使用 Oh My ZSH。唯一缺少的是重新运行相同的 xampp 安装程序并确保仅检查开发人员文件。它不会与其他任何东西混淆,只需添加开发文件(源代码)。 -- 安装完成后,按照 xdebug 向导中的安装说明进行操作,然后关闭 :)【参考方案4】:

我认为你缺少两件事:

PHP 源代码

我不知道 XAMPP,所以在这里我无能为力。可能PHP源码是用XAMPP打包的,看看吧。

自动配置

尝试用

安装 autoconf
brew install autoconf

【讨论】:

没有 XAMPP 的来源。但你的回答确实给了我一个提示。我可以更新我的 Mac PHP 版本 (5.x) 以匹配 XAMPP 的版本 (7.x) 然后我可以使用我的 mac 的 PHP 安装对其进行 phpize。最后将编译后的 .so 与 XAMPP 一起使用。

以上是关于在 Mac 上的 xampp 上安装 xDebug:phpize 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Mac下配置xampp和Xdebug

Mac下配置xampp和Xdebug

Netbeans xDebug 仅在 Mac 上运行一次

无法通过 php 脚本连接到 xdebug(在 xampp for mac 上运行)

无法在 XAMPP 和 Windows XP 上安装 Xdebug

在 Mac 上的 XAMPP 上安装 PHP 国际化扩展 (Intl)