php 使用MAMP在Mac OS X上构建和安装Xdebug

rlcwz9us  于 2023-01-29  发布在  PHP
关注(0)|答案(5)|浏览(152)

我在使用MAMP的Mac OS X上构建和安装Xdebug时遇到问题。
到目前为止,我在网上进行了广泛的搜索,目前我被困在Xdebug“安装向导”的一部分,它告诉我“运行:phpize”在我下载的源代码上。
当我运行phpize时,我收到以下消息:

new-host-2:xdebug-2.2.0 Dima$ phpize

grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

如果我做一个which phpize,我会得到:

new-host-2:xdebug-2.2.0 Dima$ which phpize
/usr/bin/phpize

这不是我想使用的版本。我想使用安装了MAMP的phpize版本,因为我想在MAMP版本的PHP上安装Xdebug。这很令人费解,因为我已经在$PATH变量中添加了MAMP特定的PHP bin路径到我的.bash_profile。
如果运行echo $PATH,则会得到:

new-host-2:xdebug-2.2.0 Dima$ echo $PATH

/opt/local/bin:/opt/local/sbin:/Applications/MAMP/bin/php/php5.4.3/bin:/Users/Dima/.rvm/gems/ruby-1.9.2-p290/bin:/Users/Dima/.rvm/gems/ruby-1.9.2-p290@global/bin:/Users/Dima/.rvm/rubies/ruby-1.9.2-p290/bin:/Users/Dima/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

MAMP特定的PHP路径显示在'/usr/bin'前面。接下来我尝试运行MAMP特定的phpize,手动提供完整的路径,如下所示:

new-host-2:xdebug-2.2.0 Dima$ /Applications/MAMP/bin/php/php5.4.3/bin/phpize
-bash: /Applications/MAMP/bin/php/php5.4.3/bin/phpize: Permission denied

现在我在Finder中检查了这些文件的权限,结果显示我有完全的权限来读写这个文件夹中的文件。我有点迷路了。

0x6upsns

0x6upsns1#

我也有同样的问题,但我找到了更好的解决办法。
Xdebug已在MAMP中。
检查您的 * php.ini * 文件:

/Applications/MAMP/conf/php5.x/php.ini

一直走下去。你会看到

[xdebug]
;zend_extension="/Applications/MAMP/bin/php5.X/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"

把它改成

[xdebug]
zend_extension="/Applications/MAMP/bin/php5.X/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

重新启动服务器... * 完成
参见:
Want to run Xdebug? MAMP is the easiest way… *

lhcgjxsq

lhcgjxsq2#

我尝试了德米特里·萨穆伊洛夫的答案,但对我不太有效,所以我又在谷歌上搜索了一下,结果如下。
1.从SourceForge下载并解包MAMP Components
1.记下phpize过程中没有找到的路径。对我来说是:

/Applications/MAMP/bin/php/php5.2.17/include/php/main/php.h

/Applications/MAMP/bin/php/php5.2.17/include/php/Zend/zend_modules.h

/Applications/MAMP/bin/php/php5.2.17/include/php/Zend/zend_extensions.h

1.在MAMP PHP目录中创建所需的路径。

/include/php/

1.确保对目录具有正确的权限
1.找到目标PHP版本(在我的例子中是5.2.17)的组件,并将它们复制到步骤3中创建的路径中。
1.从Xdebug站点运行使用正确phpize版本的说明

ccgok5k5

ccgok5k53#

经过更多的研究和试错,我设法安装后,做了以下事情:
1.在终端中,我运行了chmod u+x /Applications/MAMP/bin/php/php5.4.3/bin/*,以打开phpize和该路径中其他内容的执行权限
1.按照this article安装命令行工具
1.按照this article安装最新的Autoconf和相关工具
1.在那之后,按照Xdebug Wizard提供的步骤进行操作就没有问题了

55ooxyrt

55ooxyrt4#

需要指出的是,“解决方案”中的说明是针对Xdebug2的,我们现在使用的是xdebug3。
要在macOS上的MAMP中启用xdebug3,请执行以下操作:

  • 打开工具→ phpinfo
  • 找到行Loaded Configuration File(加载的配置文件)并复制php.ini文件的完整路径(/Application/MAMP/......)。
  • 打开终端并键入以下命令open,然后粘贴复制的活动php.ini文件的完整路径。
  • 添加以下行
[xdebug]
zend_extension = xdebug
xdebug.mode = debug
xdebug.show_local_vars=1
  • 重新启动MAMP Web服务器。

再次检查phpinfo(刷新)并查看ZEND engine下的一行,其中显示with Xdebug vX.X.X....
如果没有出现,请检查拼写错误或其他打字错误。
请参考xdebug documentation以获取可以添加到php.ini文件中的其他设置。如果您更改PHP版本,则必须重复此过程。
或者购买MAMP Pro许可证,允许从MAMP控制面板执行此操作。

mznpcxlj

mznpcxlj5#

很简单的。
在 * C:\MAMP\conf\php x.x. x * 目录中,打开每个相关的 * php. ini *。
然后把这些行放到 * php.ini * 中:

[xdebug]

xdebug.default_enable=1

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1

zend_extension="C:\MAMP\bin\php\php5.5.0\ext\php_xdebug.dll"

相关问题