Mac OS Snow Leopard上的两个版本的PHP&使用PECL安装xdebug

时间:2011-04-26 11:17:09

标签: php osx-snow-leopard xdebug mamp pecl

我在 Snow Leopard 上阅读了一些关于内置Apache / PHP的帖子之前,曾经使用 MAMP (标准)进行PHP开发。我决定转向我提供的那些,但似乎有很多问题。

第一件事是当我使用MAMP时,我将PEAR从1.9.0升级到1.9.1(稍后安装PHPUnit),引用来自this post。使用phpunit命令对我来说效果很好。我也有Xcode4,但几周前将其删除(我提到这个因为我不知道造成我所有麻烦的原因是什么)。

然后,当我尝试在Snow Leopard上使用默认的Apache和PHP时,我意识到我的Mac上可能有两个版本的PHP。

当我尝试撤销php -i命令时,第一个是5.3.3:

    PHP 5.3.3 (cli) (built: Aug 22 2010 19:41:55) 
    Copyright (c) 1997-2010 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans

第二个是5.3.4,当我使用phpinfo()运行文件或调用此php-config --version命令时实际显示。请参阅下面的屏幕截图:

PHP file with phpinfo()

=============================================== ==========================

另一个问题是使用 PECL 安装 xdebug 。您在上面的php -i命令中看到的是来自Komodo的预编译xdebug.so(我读this post),而不是每当我尝试安装xdebug时PECL安装的内容,这些错误都会出现:

ngocminh@MBP[447]:~$ cd /usr/local/pear/bin/
ngocminh@MBP[448]:bin$ sudo ./pecl install xdebug
downloading xdebug-2.1.1.tgz ...
Starting to download xdebug-2.1.1.tgz (303,198 bytes)
..............................................................done: 303,198 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

在为他们上网一整天后,不知道这些混乱。请帮我搞清楚。如果你愿意,请不要犹豫,向我询问更多细节。谢谢!!!

- 编辑1: which php

ngocminh@MBP[449]:bin$ which php
/usr/bin/php

1 个答案:

答案 0 :(得分:1)

我建议你坚持使用MAMP有几个原因

  1. 来自apple的软件更新可能会破坏您对操作系统级别的PHP和MySQL所做的自定义。

  2. MAMP可以轻松停止,因此只在需要时消耗系统资源。

  3. 对MAMP的更改不太可能影响系统的任何其他部分

  4. 你没有表明任何转换的原因,所以你造成了不必要的麻烦,只是为了可能回到你已经在MAMP的地方

  5. 我使用Komodo二进制文件通过MAMP运行XDebug。我建议你做同样的事情,除非有理由通过PECL安装你自己的。如果您需要从命令行访问php,请This post may be relevant