OS X 10.9 Mavericks上的PHP Xdebug

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

任何人都有解决scheme或解决方法?

快速复制粘贴的方式

 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哪个configuration文件被加载
  • 在configuration文件中添加Xdebug扩展path
  • 重新启动apache。

兼容塞拉利昂,埃尔卡皮坦和优胜美地阿德蒙特,但未经testing的MAMP和XAMPP。

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

不知道使用pecl 。 在安装OS X之后获得Xdebug非常简单,没有pecl 。 你有两个简单的select:

  1. 使用以下版本的可用版本:

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

    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解压到它创build的目录中。 在那个目录里面你会看到一个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 ...] 

您构build的xdebug.so现在位于modules/xdebug.sophpize是安装XCode CLI工具的关键,因为phpize为您的PHP版本设置构build参数。

从上面的(1)或(2)手中获得xdebug.so ,可以将此块添加到您的phpphp-fpm使用的php.ini中:

 [Xdebug] zend_extension=<full_path_to_xdebug.so> xdebug.remote_enable=1 xdebug.remote_host=<host running PHP (eg localhost)> xdebug.remote_port=<port Xdebug tries to connect to on the host running PHP (default 9000)> 

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

 xcode-select --install 

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

下一步是按照Ares在回答中所示的方式安装autoconf

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

 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 

如果您使用的是Mac Yosemite 10.10而上述答案都不能解决问题。 请执行下列操作:

  1. 打开一个terminal

  2. 执行find /usr/lib/php/extensions -name "xdebug.so"来知道debugging库的path。

  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 

(完成后,inputcontrol+o保存并control+xclosures文件)

(不要忘记从第一个terminal命令中取出zend_extension中的值)

  1. 执行sudo apachectl restart来加载新的configuration
  2. 高枕无忧

对于任何面临这个问题的人,我必须从源代码构buildautoconf。 我从另一个StackOverflow问题跟随这个答案。

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

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

我不得不brew install xdebug并select我的PHP版本,它的工作! 例如,

 brew install homebrew/php/php56-xdebug 

对于PHP版本5.6变体。