OS X 10.9 Mavericks上的PHP Xdebug

时间:2013-10-25 01:04:21

标签: php xdebug osx-mavericks

安装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

任何人都有解决方案或解决方法吗?

7 个答案:

答案 0 :(得分: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&优胜美地与apruled apache,但未经MAMP&测试XAMPP。

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

答案 1 :(得分:36)

不知道使用pecl。在没有pecl的情况下安装OS X后获取Xdebug非常简单。你有两个简单的选择:

  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 ...]
      
  3. 您构建的xdebug.so现在位于modules/xdebug.sophpize对于安装的XCode CLI工具至关重要,因为phpize会为您的PHP版本设置构建参数。

    使用上面(1)或(2)中的xdebug.so,您可以将此块添加到php.iniphp使用的php-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)>
    

答案 2 :(得分:16)

这里有两个问题。首先,您需要使用以下命令安装Xcode命令行工具:

xcode-select --install

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

下一步是安装autoconf,方法与Ares在his answer中显示的方式相同。

我会先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

答案 3 :(得分: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
    
  5. (完成后,输入control+o保存并control+x关闭文件)

    (不要忘记在第一个终端命令中获取的内容中替换zend_extension中的值)

    1. 执行sudo apachectl restart以加载新配置
    2. 坐下来放松

答案 4 :(得分:2)

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

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

答案 5 :(得分:2)

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

答案 6 :(得分:2)

我必须brew install xdebug并选择我的PHP版本并且它有效! 例如,

brew install homebrew/php/php56-xdebug

对于PHP 5.6版本变种。