47

安装 OS X 10.9 Mavericks 后,我在 OS X 上设置 PHP 开发环境时遇到问题。

这是我用来安装的命令。

sudo pecl install xdebug

downloading xdebug-2.2.3.tgz ...
Starting to download xdebug-2.2.3.tgz (250,543 bytes)
.....................................................done: 250,543 bytes
66 source files, building
running: 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.

ERROR: `phpize' failed

有人有解决方案或解决方法吗?

4

7 回答 7

91

快速复制粘贴方式

sudo sh -c 'echo zend_extension=$(find /usr/lib/php/extensions -name "xdebug.so") >> $(php -qr "echo php_ini_loaded_file();") && apachectl restart'

该命令执行以下操作:

  • 查找 Xcode 自带的原生 Xdebug 扩展
  • 询问 php 加载了哪个配置文件
  • 在配置文件中添加 Xdebug 扩展路径
  • 重启阿帕奇。

通过捆绑的 apache 与 Sierra、El Capitan 和 Yosemite 兼容,但未经 MAMP 和 XAMPP 测试。

在启动命令之前,请确保已安装 Xcode 命令行工具:xcode-select --install

于 2013-12-16T21:26:02.497 回答
36

不知道怎么用pecl。在 OS X 安装后获取 Xdebug 非常简单,没有pecl. 你有两个简单的选择:

  1. 使用已在以下位置提供的版本:

    /usr/lib/php/extensions/no-debug-non-zts-2010052/xdebug.so
    
  2. 建立你自己的:

    1. 确保您有 Xcode CLI 工具:xcode-select --install将提示您安装 CLI 工具。安装 CLI 工具后,里面应该有/usr/include/php.

    2. 转到http://xdebug.org/download.php并下载您想要的 Xdebug 版本的源代码压缩包。例如:http: //xdebug.org/files/xdebug-2.2.3.tgz

    3. 解压缩 tarball 并cd进入它创建的目录。在该目录中,您将看到一个README. 从这里开始:

      $ phpize
      Configuring for:
      PHP Api Version:         20100412
      Zend Module Api No:      20100525
      Zend Extension Api No:   220100525
      $ ./configure --enable-xdebug
      checking for grep that handles long lines and -e... /usr/bin/grep
      checking for egrep... /usr/bin/grep -E
      checking for a sed that does not truncate output... /usr/bin/sed
      [... output ...]
      $ make
      [... output ...]
      

您的构建xdebug.so现在位于modules/xdebug.so. 这phpize对于安装 XCode CLI 工具至关重要,因为phpize为您的 PHP 版本设置了构建参数。

xdebug.so上面的 (1) 或 (2) 开始,您可以将此块添加到您的orphp.ini正在使用的块中:phpphp-fpm

[Xdebug]
zend_extension=<full_path_to_xdebug.so>
xdebug.remote_enable=1
xdebug.remote_host=<host running PHP (e.g. localhost)>
xdebug.remote_port=<port Xdebug tries to connect to on the host running PHP (default 9000)>
于 2013-11-23T17:57:35.000 回答
16

这里有两个问题。首先是需要安装Xcode命令行工具,命令如下:

xcode-select --install

这将意味着以前找不到的文件/usr/include/php/将可用。

下一步是按照阿瑞斯在他的回答autoconf中显示的相同方式进行安装。

我会cd先进入你的下载文件夹

cd ~/Downloads/
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
tar xzf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr/local
make
sudo make install

现在您可以运行pecl install命令

sudo pecl install xdebug
于 2013-10-29T16:53:44.217 回答
16

如果您使用的是 Mac Yosemite 10.10 并且以上答案都没有解决问题。请执行下列操作:

  1. 打开终端

  2. 执行find /usr/lib/php/extensions -name "xdebug.so"以了解调试库的路径。

  3. 执行sudo nano /etc/php.ini打开并编辑php.ini文件
  4. 在 php.ini 的末尾添加以下行

    [XDebug]
    zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
    xdebug.remote_enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    

(完成后,键入control+o以保存并control+x关闭文件)

(不要忘记将 zend_extension 中的值替换为您从第一个终端命令获得的任何值)

  1. 执行sudo apachectl restart加载新配置
  2. 高枕无忧
于 2015-01-12T22:05:20.860 回答
2

对于任何面临这个问题的人,我必须从源代码构建 autoconf。我从另一个 StackOverflow 问题中遵循了这个答案。

https://stackoverflow.com/a/12333230/2272004

于 2013-10-25T01:25:15.400 回答
2

对于phpize错误的问题,试试这个可以解决你的问题:sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/包括

于 2014-02-19T04:01:01.997 回答
2

我不得不brew install xdebug为我的 PHP 版本选择它并且它有效!例如,

brew install homebrew/php/php56-xdebug

对于 PHP 5.6 版本的变体。

于 2016-04-06T18:34:11.367 回答