【问题标题】:Can't install xdebug on Mac with Homebrew无法使用 Homebrew 在 Mac 上安装 xdebug
【发布时间】:2012-09-24 14:08:15
【问题描述】:

我对使用 Homebrew 有点陌生,但我喜欢它。它是如此容易。我正在尝试安装 Xdebug。网络上的一些帖子说要这样做:

brew install xdebug

但它不起作用。我得到:Error, no available formula.

我做了brew search xdebug,它返回了:

josegonzalez/php/php53-xdebug    josegonzalez/php/php54-xdebug

我尝试了几种不同的 brew install 迭代,其中包括 brew install php53-xdebug,但仍然没有运气。有人能帮我吗?我在 Xdebug 的网站上找不到任何关于使用 Homebrew 的信息,但网络上的帖子似乎表明这是可能的。

【问题讨论】:

  • 改用 MacPorts 并转到 sudo port install php56-xdebug

标签: xdebug homebrew


【解决方案1】:

// 从 2021 年开始工作

由于 homebrew 删除了包含已安装 xdebug 版本的额外 php 存储库,您必须手动安装它。

总结:

  1. brew install <php version> 用于 php
  2. 更新您的路径
  3. pecl install xdebug 用于 xdebug

完整示例:

# update homebrew
brew update

# install a version of php, e.g. 7.0
brew install php@7.0

# now they tell you how to link it, in my case
echo 'export PATH="/usr/local/opt/php@7.0/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.0/sbin:$PATH"' >> ~/.bash_profile

# reload the file with the updated path, so we can use pecl
source ~/.bash_profile

# check that the path is to the correct php executable,
# and pecl is available
which pecl
# returns: /usr/local/opt/php@7.0/bin/pecl

# install xdebug, see https://xdebug.org/docs/install#pecl
pecl install xdebug

# check that everything worked
php --version
# should show a xdebug version
# like:  with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

上面的pecl install xdebug 步骤以

结尾
Build process completed successfully
Installing '/usr/local/Cellar/php@7.0/7.0.30/pecl/20151012/xdebug.so'
install ok: channel://pecl.php.net/xdebug-2.6.0
Extension xdebug enabled in php.ini

所以我什至不需要在php.ini 中启用xdebug.so



如果您需要特殊版本的xdebug(例如,您的 IDE 不喜欢 3.x.x 版本),您可以安装特定版本的 xdebug-$VERSION,例如pecl install xdebug-2.9.8。 您可以在list of available versions 上找到它们(感谢Bower

【讨论】:

  • 这种使用 pecl 的安装方法有效 - 而占位符的方法(来自 xdebug.org 说明)没有。谢谢!
  • 您可能必须运行 mkdir 并创建 /usr/local/Cellar/php@7.0/7.0.30/pecl/20151012 文件夹。我创建了它们,它在路径上成功安装了 xdebug.so。
  • pecl install xdebug 为我带来了 3.0.2 版本,而不是根据您的输出的 2.6.0,我的 IDE 似乎不支持。您可以通过将-version_number 附加到命令来指定要安装的版本。例如pecl install xdebug-2.9.8。您可以通过查看here 找到通过 pecl 提供的 xdebug 版本的完整列表。
  • FWIW,不再支持 Xdebug 2.x。
【解决方案2】:

添加此存储库:https://github.com/josegonzalez/homebrew-php#readme

然后在 PHP 5.4 中使用 brew install php54-xdebug

brew install php53-xdebug 用于 PHP 5.3

brew install php55-xdebug 用于 PHP 5.5

【讨论】:

  • 分别适用于php5.5(已测试):brew install php55-xdebug
  • 如何将存储库添加到 brew? - brew tap josegonzalez/homebrew-php
  • 只是给像我这样的新手一个注释,添加你需要输入的仓库:brew tab josegonzalez/homebrew-php
  • 使用自制软件,iInstall PHP 5.6,然后brew install php56-xdebug
  • 我让它与标准 brew 存储库一起使用,请参阅下面的答案:stackoverflow.com/a/50181214/3423324
【解决方案3】:

暂时忘掉自制。我已经尝试过使用它,但在稳定性方面并不是一个好主意。而是坚持默认安装指南:

在 Mac OSX 上安装 XDebug

  1. 转到http://xdebug.org/wizard.php 并粘贴您的 phpinfo() 内容 在那里。
  2. 下载xdebug-2.2.5.tgz (http://xdebug.org/files/xdebug-2.2.5.tgz)
  3. 解压下载的文件:

    tar -xvzf xdebug-2.2.5.tgz

  4. 运行:

    cd xdebug-2.2.5

  5. 运行 phpize(如果您还没有,请通过 homebrew 安装)

    phpize

  6. 作为其输出的一部分,它应该显示(如果没有,你使用了错误的 phpize):

    配置用于: ...
    Zend 模块 API 编号:20100525
    Zend Extension API 编号:220100525

  7. 运行:

    ./configure

  8. 运行:

    make

  9. 运行:

    cp modules/xdebug.so /usr/lib/php/extensions/no-debug-non-zts-20100525

  10. 编辑 /etc/php.ini 并添加以下行:

    zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so

  11. 在终端输入重启网络服务器:

    sudo apachectl restart

【讨论】:

  • 我知道我在挖掘一个旧帖子,但你为什么要告诉他不要理会他的包管理器,并且可能会弄乱他已经到位的配置?他只需要进入 homebrew/php 并在使用 brew install 时选择他的版本。这不仅是不好的建议,而且有潜在的危险。用你的方法更新实际上更麻烦也更难。虽然很高兴知道如何编译和制作自己的包,但包管理器是出于明确的原因而制作的。
  • 在 make 之后我得到一个错误列表,上面写着In file included from ./php_xdebug.h:35: ./xdebug_code_coverage.h:47:36: error: a parameter list without types is only allowed in a function definition
【解决方案4】:

更新日期:2019 年 9 月 10 日

对于 PHP 5.6 和 7.0(不再在 brew 核心中)

brew tap exolnet/homebrew-deprecated

使用 brew 捆绑的 pecl(当 php 与 brew 一起安装时)

PHP 5.6 示例

brew install php@5.6
$(brew --prefix php@5.6)/bin/pecl install --force xdebug-2.5.5

PHP 7.0 示例

brew install php@7.0
$(brew --prefix php@7.0)/bin/pecl install --force xdebug

PHP 7.1 示例

brew install php@7.1
$(brew --prefix php@7.1)/bin/pecl install --force xdebug

PHP 7.2 示例

brew install php@7.2
$(brew --prefix php@7.2)/bin/pecl install --force xdebug

PHP 7.3 示例

brew install php@7.3
$(brew --prefix php@7.3)/bin/pecl install --force xdebug

或先用 brew 链接

PHP 5.6 示例

brew install php@5.6
brew link --force php@5.6
pecl install --force xdebug-2.5.5
brew unlink php@5.6

PHP 7.0 示例

brew link --force php@7.0
pecl install --force xdebug
brew unlink php@7.0

PHP 7.1 示例

brew link --force php@7.1
pecl install --force xdebug
brew unlink php@7.1

PHP 7.2 示例

brew link --force php@7.2
pecl install --force xdebug
brew unlink php@7.2

PHP 7.3 示例

brew link --force php@7.3
pecl install --force xdebug
brew unlink php@7.3

如果 php -v 给你一个错误,说明找不到 xdebug.so(假设 pecl 安装顺利),那么你可能有“旧”设置,如 php.ini 使用 brew 卸载/重新安装 php 不会删除 ini文件。将 php 升级到新格式不会更新 ini 文件。删除文件夹 /usr/local/etc/php/5.6/ 后,只需使用 brew 重新安装 php,xdebug 应该可以工作。

新的brew php安装不链接。如果您愿意,您可以自己执行此操作(brew link --force php@5.6)您也可以安装 brew-php-switcher 以在版本之间切换。

brew install brew-php-switcher
brew-php-switcher 5.6 -s
php -v
brew-php-switcher 7.0 -s
php -v

请记住,如果您将 php 作为服务加载,则必须重新启动该服务。

brew services restart php@7.0

【讨论】:

  • 这是安装所有必要 PHP 模块的更简单方法。 brew install php@7.1 && $(brew --prefix php@7.1)/bin/pecl install --force xdebug
  • 这个答案似乎是唯一一个真正展示如何仅使用 Homebrew 和每个 PHP Pecl 安装为多个 PHP 版本安装 Xdebug 的答案。这太棒了!
【解决方案5】:

我在谷歌搜索如何在 上为php 7.1 安装 时发现了这个页面,我决定在这里留下我的解决方案:

brew install homebrew/php/php71-xdebug

也许以后会对其他人有所帮助...

【讨论】:

  • 普通命令 brew install php72-xdebug 对我不起作用。使用全名有效。谢谢
  • 我真的希望人们停止在 homebrew 中移动东西...$ brew install homebrew/php/php71-xdebug 错误:homebrew/php 已被弃用。此水龙头现在是空的,因为它的所有公式都已迁移。
【解决方案6】:

用于 php8 的 Big Sur 上的 Xdebug

php8 之前使用 brew 安装。

~ % pecl install xdebug
ERROR: `phpize' failed

哎哟!检查 xcrun。谢谢 Louis Charette:

~ % xcrun --show-sdk-path
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

错误。更新 Xcode。我刚刚安装并重新测试:

~ % xcode-select --install
xcode-select: note: install requested for command line developer tools

~ % xcrun --show-sdk-path 
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

这样更好!现在返回并再次尝试 pecl:

~ % pecl install xdebug
...
Build process completed successfully
Installing '/usr/local/Cellar/php/8.0.0_1/pecl/20200930/xdebug.so'
install ok: channel://pecl.php.net/xdebug-3.0.2
Extension xdebug enabled in php.ini

并检查它是否有效:

~ % php -v
PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.2, Copyright (c) 2002-2021, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies

【讨论】:

  • 我收到此错误:构建过程已成功完成安装'/usr/local/Cellar/php/8.0.3/pecl/20200930/xdebug.so' 警告:mkdir():系统中存在文件.php 第 294 行 PHP 警告:mkdir():文件存在于 /usr/local/Cellar/php/8.0.3/share/php/pear/System.php 第 294 行警告:mkdir():文件存在于 / usr/local/Cellar/php/8.0.3/share/php/pear/System.php 在第 294 行错误:未能 mkdir /usr/local/Cellar/php/8.0.3/pecl/20200930
  • 谢谢@Bernievv,这真的对我有用。 ❯ php -v PHP 8.1.2 (cli) (built: Jan 21 2022 04:34:05) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
【解决方案7】:

这是我的解决方案!试试吧! ;)

1 安装开发者工具:

xcode-select --install

2 安装 Autoconf。这是一个用于生成自动配置软件的shell脚本的工具

brew install autoconf

3 如果你使用 PHP >5.6

sudo pecl install xdebug

玩得开心;)

【讨论】:

    【解决方案8】:

    卡特琳娜

    从 Catalina (Mac OS 10.15) 开始 PHP 似乎是预安装的(检查php -v)它可以与 xcode 或其他软件一起安装(我不确定)但我昨天刚刚安装了 Catalina 并没有还没有安装 Homebrew,xdebug 也可用。我只需要重命名/etc/php.ini.default 并添加这一行

    zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
    

    【讨论】:

      【解决方案9】:

      macOS 10.14 Mojave,Homebrew,PHP 7.3,2020 年 4 月

      following article 中给出的描述是我唯一可以在 macOS 10.14 Mojave 上使用 Homebrew 安装 PHP 7.3 和工作 xdebug:

      brew list | grep php | awk '{ print "brew uninstall --force "$1}' | bash        # Remove any old version of php.
      rm -rf /usr/local/Cellar/php                                                    # To be sure, manually remove the php cellar folder.
      brew untap homebrew/php                                                         # Then clean any php tap (extra repo).
      brew cleanup                                                                    # Cleanup and Update your brew.
      brew update
      brew install php                                                                # Install the latest version of php.
      pecl uninstall xdebug                                                           # Clean up old xdebug.
      pecl install xdebug-beta                                                        # Install the latest version of xdebug-beta (The xdebug is not compatible with 7.3 so you need to use the xdebug-beta).
      php -v                                                                          # Should now say "with Xdebug v2.9.4, Copyright (c) 2002-2020, by Derick Rethans"
      

      【讨论】:

        【解决方案10】:

        它看起来像 repo 移动了,但它是可用的 here,以及如何从 Homebrew 访问它的 instructions

        【讨论】:

        • 这是否安装了 PHP 和 XDebug?我如何才能获得 XDebug?我已经有了 PHP。
        • @shummel7845:我不这么认为,但我不确定。
        • @sehummel 尝试使用--without-homebrew-php 标志编译。
        【解决方案11】:

        如果您在添加水龙头并安装后收到此错误:

        $ brew install "josegonzalez/php/php55"
        ==> Installing php55 from josegonzalez/php
        Error: Formulae found in multiple taps: 
         * homebrew/php/php53
         * josegonzalez/php/php53
        
        Please use the fully-qualified name e.g. homebrew/php/php53 to refer the formula.
        

        因为最近josegonzalez/php被移到homebrew-php/php,所以你会遇到之前的错误。

        这个想法很简单,删除旧的弃用 repo josegonzalez/php

        brew untap josegonzalez/php
        brew tap --repair
        brew update
        

        请参阅此解决方案的source 以修复任何其他相关错误。

        【讨论】:

          【解决方案12】:

          它帮助我解决了zend版本和xdebug Xdebug 需要 Zend Engine API 版本 320160303。 安装的 Zend Engine API 版本 320180731 较新。

          https://xdebug.org/wizard.php

          【讨论】:

            【解决方案13】:

            截至 2021 年 5 月,通过 Homebrew 安装 PHP 后,只需运行以下命令:

            pecl install xdebug
            

            您需要安装 XCode,如上述答案所示。

            涉及其他 brew 存储库或 php74-* 包命名空间的其他答案基于 Homebrew 使用 PHP 的旧方式。

            【讨论】:

              【解决方案14】:

              MacOS 的改进答案

              如果您已按照官方文档中的说明进行操作,但无法使用 php -v 命令查看 XDebug 信息而出现错误,那么您应该执行的最后一步如下:

              1. 转到您在所述路径中创建的 99-xdebug.ini 文件并添加以下行:

              zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so"

              (仍然错误?检查您的 xdebug.so 路径是否有效)

              1. 保存更改后,使用以下命令重新启动 php:

              brew services 重启 php@7.3(用你的 php 版本更改 7.3)

              1. 然后使用 php -v 命令检查您现在是否可以看到 XDebug 信息。

              注意:99-xdebug.ini 的“描述路径”类似于:

              /usr/local/etc/php/7.3/conf.d(用你的php版本更改7.3)

              确定,输入 php --ini 命令。

              【讨论】:

                猜你喜欢
                • 2017-11-16
                • 1970-01-01
                • 2013-08-05
                • 1970-01-01
                • 2020-12-18
                • 2016-06-11
                • 1970-01-01
                • 2023-03-08
                • 2017-07-21
                相关资源
                最近更新 更多