使用PHP 7的macOS 10.13上的Xdebug

杰拉德·德·琼

因此macOS High Sierra 10.13现在附带了PHP 7.1。在配置Apache时,我还/etc/php.ini从该/etc/php.ini.default文件创建了一个新文件,请确保在重新启动Apache之后检查PHP是否正在加载文件,但是macOS 10.13附带的Xdebug扩展版本似乎在运行时不会加载或显示phpinfo();

我的php.ini肯定正在加载:

$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

这是我的/etc/php.ini配置Xdebug的样子:

[xdebug]    
zend_extension = "/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000

[更新,修正了这里的错字...]

但是,Xdebug不会加载,并且检查php -i不会给出任何结果:

$php -i | grep xdebug
PHP Warning:  Method xdebug_start_function_monitor() cannot be a NULL 
    function in Unknown on line 0
    PHP Warning:  xdebug: Unable to register functions, unable to load in Unknown on line 0
    Segmentation fault: 11

是的,该文件的路径是正确的:

$ ls /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so*

这曾经在PHP 5上有效,所以我希望将来有人可以为我和其他任何人提供帮助。

当我检查我的Apache日志时,出现以下错误:

Failed loading /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so:  dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so, 9): Symbol not found: _xdebug_monitored_function_dtor
  Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
  Expected in: flat namespace
 in /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so

在找出如何解决此错误方面,我没有取得进展:

Symbol not found: _xdebug_monitored_function_dtor
杰拉德·德·琼

好的,所以我终于可以自己运行它了,它运行完美!我假设macOS High Sierra附带的xdebug二进制文件(位于/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so:)与PHP7的新Zend引擎不兼容。

因此,我从xdebug网站下载了最新资源,并执行了以下操作:

  1. 在brew上安装了autoconf;
  2. 运行phpize以配置新的Zend引擎的构建;
  3. ./configure
  4. make

现在新的二进制文件在 modules/xdebug.so

但是,macOS系统完整性保护(SIP)将阻止您覆盖xdebug.sounder /usr/lib/php/extensions/我不想禁用此功能,因此在其下创建了一个新的目录路径,/usr/local/lib/php/extensions/并将新的二进制文件复制到此位置。我不确定该目录是否是放置该目录的最佳位置,或者这是否不好,但这对我有用。

最后,我重新配置了php.ini以使用新的二进制文件,并且一切正常!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章