无法使用Homebrew在Mac上安装xdebug

时间:2012-10-03 15:42:29

标签: xdebug homebrew

我对使用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的任何内容,但网上的帖子似乎表明它是可能的。

13 个答案:

答案 0 :(得分:77)

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

然后使用brew install php54-xdebug进行PHP 5.4

对于PHP 5.3,

brew install php53-xdebug

对于PHP 5.5,

brew install php55-xdebug

答案 1 :(得分:14)

暂时忘掉 homebrew 。我已经尝试过这样做,这不是一个好主意稳定性。而是坚持默认安装指南:

在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 (如果您还没有,请通过自制程序安装)

    phpize

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

      

    配置:...
      Zend Module Api No:20100525
      Zend Extension Api No: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

答案 2 :(得分:13)

当自制软件删除了包含已安装xdebug的版本的额外php存储库时,您必须手动安装它。

要点:

  1. brew install for php
  2. 更新您的路径
  3. pecl install for xdebug
  4. 完整示例:

    # 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
    

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

答案 3 :(得分:6)

我在上搜索如何为 select ... from MyTable order by case -- Closed should be in the end when Status = 10 then -- Put the right constant for Closed here 1 else 0 end, Status -- if Status is not "Closed", order by Status 安装时找到了此页面,我决定将此解决方案留在此处:

php 7.1

将来可能对其他人有帮助......

答案 4 :(得分:6)

使用brew bundle pecl(当brew中安装了php)

PHP 5.6示例

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

PHP 7.0示例(7.0现在是EOL,而在brew core中默认不是)

git -C "$(brew --repo homebrew/core)" fetch --unshallow
git -C "$(brew --repo homebrew/core)" checkout 7e111a877^
HOMEBREW_NO_AUTO_UPDATE=1 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不起作用(还)需要xdebug 2.7.0

或链接

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示例

git -C "$(brew --repo homebrew/core)" fetch --unshallow
git -C "$(brew --repo homebrew/core)" checkout 7e111a877^
HOMEBREW_NO_AUTO_UPDATE=1 brew install 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不起作用(还)需要xdebug 2.7.0

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

新的brew php安装未链接。如果您想(浏览链接--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作为服务加载,则必须重新启动该服务。

答案 5 :(得分:3)

Big Sur 上的 Xdebug for php8

php8 以前随 brew 一起安装。

~ % pecl install xdebug
ERROR: `phpize' failed

哎哟!检查 xcrun。谢谢路易斯夏雷特:

~ % 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

答案 6 :(得分:1)

这是我的解决方案!尝试一下! ;)

1安装开发人员工具:

xcode-select --install

2安装自动配置。这是用于生成可自动配置软件的Shell脚本的工具

brew install autoconf

3如果您使用PHP> 5.6

sudo pecl install xdebug

玩得开心;)

答案 7 :(得分:0)

看起来回购已移动,但可以使用here完成,instructions如何从Homebrew访问它。

答案 8 :(得分:0)

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

https://xdebug.org/wizard.php

答案 9 :(得分:0)

Catalina

从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

答案 10 :(得分:0)

macOS 10.14 Mojave,自制软件,PHP 7.3、2020年4月

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

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"

答案 11 :(得分:0)

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

pecl install xdebug

您需要按照上述答案安装 XCode。

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

答案 12 :(得分:-1)

如果在添加点击并安装后出现此错误:

$ 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 ,因此您将面临之前的错误。

这个想法非常简单,删除旧的已弃用的回购 josegonzalez / php

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

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