OS X 10.9 Mavericks上的PHP Xdebug

gre*_*fox 47 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
Run Code Online (Sandbox Code Playgroud)

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

Cre*_*rge 91

快速复制粘贴方式

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

此命令执行以下操作:

  • 查找Xcode附带的本机Xdebug扩展
  • 询问php加载了哪个配置文件
  • 在配置文件中添加Xdebug扩展路径
  • 重新启动apache.

与Sierra,El Capitan和Yosemite兼容,带有Bunleled apache,但未经MAMP和XAMPP测试.

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

  • @ user2070775尝试将`/ etc/php.ini.default`重命名为`/ etc/php.ini` (7认同)
  • 虽然最初没有加载php.ini文件,但确认了小牛队.不得不重命名/etc/php.ini.default然后它工作.谢谢 (6认同)
  • 在约塞米蒂确认.谢谢! (5认同)

Dmi*_*sky 36

不知道使用pecl.在OS X安装之后获取Xdebug非常简单pecl.你有两个简单的选择:

  1. 使用以下版本:

    /usr/lib/php/extensions/no-debug-non-zts-2010052/xdebug.so
    
    Run Code Online (Sandbox Code Playgroud)
  2. 建立你自己的:

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

    2. 转到http://xdebug.org/download.php并下载您想要的Xdebug版本的源代码tarball.例如: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 ...]
      
      Run Code Online (Sandbox Code Playgroud)

你的建筑xdebug.so现在在modules/xdebug.so.该phpize是一台安装了XCode CLI工具做关键的,因为phpize设置为你的PHP版本的编译参数.

xdebug.so上面的(1)或(2)中,您可以将此块添加到php.iniphpphp-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)>
Run Code Online (Sandbox Code Playgroud)

  • 除了.so的路径的非常细节之外,还有/usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so这就像一个魅力.我采取了简单的方法,甚至没有打算建立我自己的. (2认同)

wal*_*5hy 16

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

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

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

下一步是autoconf按照Ares在答案中显示的相同方式安装.

我会先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
Run Code Online (Sandbox Code Playgroud)

现在你可以运行pecl install命令了

sudo pecl install xdebug
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用Brew来安装autoconf,而不是从源代码编译 - "brew install automake" (3认同)

oab*_*rca 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
    
    Run Code Online (Sandbox Code Playgroud)

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

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

  1. 执行sudo apachectl restart以加载新配置
  2. 高枕无忧